2018-01-08 关于IOS UItableview cel
作者:
逗比鑫 | 来源:发表于
2018-01-09 10:10 被阅读0次
注意,一下内容适用于ios8及以上的系统
1.自适应行高类型
1.使用xib自适应适应行高
2.手工代码自适应适应行高
2.使用xib自适应适应行高
1.使用xib自定义一个UItableviewcell
2.在自定义的UItableviewcell的contentView中,手动添加子控件和约束,contentView 的子控件的约束要在垂直方向上给contentView一个压力,这个压力用来计算UItableviewcell的行高
3.在定义UItableview的时候,使用以下代码:
self.tableView.estimatedRowHeight = 100;
self.tableView.rowHeight=UITableViewAutomaticDimension;
注意:self.tableView.estimatedRowHeight不能设置为0(虽然是估算行高)
4.在代理方法里返回自定义的cell
5.使用 self.tableView.rowHeight=UITableViewAutomaticDimension;的语句,可以不实现UItableviewcell行高的方法,或者在返回高度的方法中返回UITableViewAutomaticDimension
6.reloaddata
3.使用纯代码自适应行高
1.新建一个类继承自UItableviewcell,在初始化方法中添加约束。
注意1:如果使用系统添加约束的方法,contentview的所有子控件都要实现以下代 码:translatesAutoresizingMaskIntoConstraints=NO;这行代码的作用就是不把AutoresizingMask自动转化为Constraints;在使用xib自定义cell的时候添加约束,xib文件会自动把translatesAutoresizingMaskIntoConstraints属性设置为但是使用手工书写代码的时候就不会自定添加这句代码,
如果使用masory添加约束则不需要使用translatesAutoresizingMaskIntoConstraints属性,具体原因不详(可能是masory在在代码里默认添加了)
注意2:约束如果添加的数值,尽量使用整形的数值,如果设置约束的数值小数点后面位的个数超过1位,会产生和cell的contentview的高度约束有冲突,导致cell显示不正常
2.在定义UItableview的时候,使用以下代码:
self.tableView.estimatedRowHeight = 100;
self.tableView.rowHeight=UITableViewAutomaticDimension;
注意:self.tableView.estimatedRowHeight不能设置为0(虽然是估算行高)
3.在代理方法里返回自定义的cell
4.使用self.tableView.rowHeight=UITableViewAutomaticDimension;的语句,可以不实现UItableviewcell行高的方法,或者在返回高度的方法中返回UITableViewAutomaticDimension
6.reloaddata
本文标题:2018-01-08 关于IOS UItableview cel
本文链接:https://www.haomeiwen.com/subject/ffobnxtx.html
网友评论