[iOS]TableView的Cell高度自适应

2024-08-20 23:32
文章标签 ios 适应 高度 tableview cell

本文主要是介绍[iOS]TableView的Cell高度自适应,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[iOS]TableView的Cell高度自适应

Demo:http://download.csdn.net/detail/u012881779/9717690

手动适配CELL高度

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *CellIdentifier = @"DMTableViewCell";DMTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];if (!cell) {cell = (DMTableViewCell *)[[[NSBundle mainBundle] loadNibNamed:@"DMTableViewCell" owner:nil options:nil] objectAtIndex:0];}cell.dContentLab.text = self.dataMArr[indexPath.row];cell.dContentLab.numberOfLines = 0;return cell;
}#pragma mark - UITableViewDelegate
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {NSString *tempContent = self.dataMArr[indexPath.row];float new_high = [self calculationHighWithSting:tempContent andWidth:[UIScreen mainScreen].bounds.size.width-(2*8) andFontSize:16.0];return 2*8 + new_high;
}// 固定宽度计算文本高度
- (float)calculationHighWithSting:(NSString *)theContent andWidth:(float)theWidth andFontSize:(float)theFontSize {if(theContent != nil && ![theContent isEqualToString:@""]){// 手动将"\\n"转换为"\n",这样才能换行.theContent =[theContent stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];}UILabel *tempLab = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, theWidth, 2000)];[tempLab setText:theContent];[tempLab setNumberOfLines:0];CGSize theSize = [tempLab sizeThatFits:CGSizeMake(theWidth, 20000)];return theSize.height;
}

自动适配CELL高度(iOS8之后)

cell中的约束必须使用Add New Constraints的方式添加,使用Autoresizing的方式约束是无法自适应高度的;

- (void)viewDidLoad {[super viewDidLoad];// 推测高度self.tableView.estimatedRowHeight = 100;// 可以注释掉,iOS8之后默认就是如此设置self.tableView.rowHeight = UITableViewAutomaticDimension;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *CellIdentifier = @"TZTableViewCell";TZTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];if (!cell) {cell = (TZTableViewCell *)[[[NSBundle mainBundle] loadNibNamed:@"TZTableViewCell" owner:nil options:nil] objectAtIndex:0];}[cell setCellLabWith:self.dataMArr[indexPath.row]];cell.oneLab.numberOfLines = 0;cell.twoLab.numberOfLines = 0;return cell;
}

手动适配示意图:



自动适配示意图:



这篇关于[iOS]TableView的Cell高度自适应的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091490

相关文章

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

cell phone teardown 手机拆卸

tweezer 镊子 screwdriver 螺丝刀 opening tool 开口工具 repair 修理 battery 电池 rear panel 后盖 front and rear cameras 前后摄像头 volume button board 音量键线路板 headphone jack 耳机孔 a cracked screen 破裂屏 otherwise non-functiona

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

240907-Gradio插入Mermaid流程图并自适应浏览器高度

A. 最终效果 B. 示例代码 import gradio as grmermaid_code = """<iframe srcdoc='<!DOCTYPE html><html><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width" /><title>My static Spa

iOS剪贴板同步到Windows剪贴板(无需安装软件的方案)

摘要 剪贴板同步能够提高很多的效率,免去复制、发送、复制、粘贴的步骤,只需要在手机上复制,就可以直接在电脑上 ctrl+v 粘贴,这方面在 Apple 设备中是做的非常好的,Apple 设备之间的剪贴板同步功能(Universal Clipboard)确实非常方便,它可以在 iPhone、iPad 和 Mac 之间无缝传输剪贴板内容,从而大大提高工作效率。 但是,iPhone 如何和 Wind

安卓实现弹出软键盘屏幕自适应调整

今天,我通过尝试诸多方法,最终实现了软键盘弹出屏幕的自适应。      其实,一开始我想通过EditText的事件来实现,后来发现,安卓自带的函数十分强大,只需几行代码,便可实现。实现如下:     在Manifest中设置activity的属性:android:windowSoftInputMode="adjustUnspecified|stateHidden|adjustResi