根据文件内容自动设置UITableView(cell)行高
2012-04-24 11:38
387 查看
在程序开发中,很多数据是动态获取的,通常UITableView中的行高设置为固定的,当文字量比较多时,程序会自动隐藏多余的数据,并且在可以显示的位置最后加‘…’,如果需要程序要求完全实现数据内容,则需要根据内容的大小改变UITableView中的行高。
具体的做法:
例:cell中有一个contentLabel,设置这个Label的两个属性:
假设dataString表示要显示的数据内容,contentLabelWidth表示label实际的宽度,
上述1500这个值是一个虚数,表示文字可显示的最大数,font 是contentLabel所需使用的字体。
在UITableView的heightForRowAtIndexPath方法中,代码:
上面的5也是一个虚数,用于设置行距,或者做消息上下空间的调整。
具体的做法:
例:cell中有一个contentLabel,设置这个Label的两个属性:
contentLabel.numberOfLines = 0 //动态显示UILabel的行数
contentLabel.lineBreakMode = UILineBreakModeWordWrap; //设置UILabel换行模式
假设dataString表示要显示的数据内容,contentLabelWidth表示label实际的宽度,
CGSize size = [dataString sizeWithFont:font constrainedToSize:CGSizeMake(contentLabelWidth, 1500)
lineBreakMode:UILineBreakModeWordWrap];
上述1500这个值是一个虚数,表示文字可显示的最大数,font 是contentLabel所需使用的字体。
在UITableView的heightForRowAtIndexPath方法中,代码:
- (CGFloat)tableView:(UITableView *)atableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { UIFont *font = [UIFont systemFontOfSize:14.0]; CGSize size = [dataString sizeWithFont:font constrainedToSize:CGSizeMake(contentLabelWidth, 1000)
lineBreakMode:UILineBreakModeWordWrap]; return size.height + 5; // 5即消息上下的空间,可自由调整 }
上面的5也是一个虚数,用于设置行距,或者做消息上下空间的调整。
相关文章推荐
- iOS中对UITableView中的cell设置自动适应行高
- QTableView根据内容自动调整列宽行高
- cell自动计算行高遇到回车换行的问题 UITableView+HYBCacheHeight、UITableView+HYBCacheHeight
- [转]让UITableView中的单元格根据内容的多少自动调整高度
- qt tableview 根据内容设置行高
- QTableView根据内容自动调整列宽行高
- UITableView cell自动适应内容高度
- iOS之设置tableView背景图片/让UITableView自动滑动(定位)到某一行cell
- QTableView根据内容自动调整列宽行高
- QTableView根据内容自动调整列宽行高
- UITableView详解(UITableViewCell(三) cell根据文本长度来自动调整cell高度)
- UITableView,根据indexPath设置cell的编辑样式,删除cell ,增加cell &搜索条
- java自动根据文件内容的编码来读取避免乱码
- 根据Android Layout XM文件自动生成自定义View代码的工具类
- Swift - UIView,UItableView,Cell设置边框方法
- UITableView自动计算cell高度并缓存
- Swift UITableView相关功能(三)设置每行显示的内容
- swift 实现对UItableView下cell中内容的搜索(1)
- 设置label高度自动,对于已经确定了内容的cell
- UITableView的cell一些设置