等高
-
storyboard
-
拖一个tableView,设置固定的行高
-
在cell上设置子控件
-
设置cell的标识
-
控制器取cell设置数据
-
xib
-
创建cell的xib
-
布局子控件
-
控制器设置行高,取cell设置数据
-
代码
-
代码自定义cell的子控件
-
控制器设置行高,取cell设置数据
非等高
-
xib
-
新建xib文件设置子控件,基本和等高一样
-
控制器设置数据,cell重写setter方法,然后强制布局为数据模型计算出cell应该有的高度
-
在控制器中先返回cell预期的高度,这样就可以使获得cell的数据源方法在获得高度的方法之前调用
-
注意点就是由于强制布局导致label的计算出来的高度和实际显示的高度有时候不一致,可以在cell的awakeFromNib中设置label的preferredMaxLayoutWidth属性设置文字布局的范围,由于约束所以label的间距依然是距离父控件的距离左右是10,有时候右边会空出一点,是因为下一个文字显示不下,换行到下一行去显示
-
storyboard
-
和xib的基本一致,只是将子控件的布局从xib转移到storyboard中
-
在storyboard中如果设置label距离父控件的左右距离各为10,那么运行出来会有约束警告,解决办法是只给label设置上、左间距确定位置即可,在cell的awakeFromNib中设置label的preferredMaxLayoutWidth属性设置文字布局的范围,这个时候的label的范围就是文字的范围,实现了包裹的效果
-
代码
-
增加frame模型,在该模型中计算frame
-
自定义cell demo code : demo 密码 : jcsb
-
tableView的运用 : QQ聊天布局 密码 : i612
网友评论