[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

相关文章

安卓链接正常显示,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

iOS项目发布提交出现invalid code signing entitlements错误。

1、进入开发者账号,选择App IDs,找到自己项目对应的AppId,点击进去编辑, 2、看下错误提示出现  --Specifically, value "CVYZ6723728.*" for key "com.apple.developer.ubiquity-container-identifiers" in XX is not supported.-- 这样的错误提示 将ubiquity

我的第一次份实习工作-iOS实习生-第三个月

第三个月 这个月有一个考核项目,是一个电子书阅读器,组长说很重要,是我的实习考核项目。 我的项目XTReader,这是我参考网上的一些代码,和模仿咪咕阅读做的,功能还不完善,数据的部分是用聚合数据做的。要收费的。   还有阅读页面,基本功能实现了一下。使用了autolayout,自适应布局,也是第一次用网络,第一次用数据库,第一次用自动布局。还有很多不足。 做了一周多,有个问题一直没

我的第一次份实习工作-iOS实习生-公司使用过的软件

bittorrentsync 素材,文件同步软件 cornerstone svn 软件开发合作 mark man 测量坐标的软件 SQLLite Manager 数据库操作软件