NSLayoutConstraint对于自定义tableviewCell 采用自动布局。UIlabel换行会出现行高偏差

iOS 码拜 6年前 (2015-10-23) 466次浏览
对于自定义tableviewCell 的时候采用NSLayoutConstraint这种自动布局。对于大小固定死的控件布局结果不会出现偏差。但是对于UIlabel这种根据输入内容可变行高的控件。运行结果会出现偏差。

思路是:先把约束条件写好。然后通过改变每个cell的行高(行高是通过UIlabel字体内容来计算的)。来拉伸各个控件的布局。这种思路对吗?请教。

假如可以推荐一些自动布局的资料给本人也行。慢慢研究。但是网上出现的这方面的资料都不怎么完整。

解决方案:40分
你不能在heightForRow里取cell,这样会造成死循环的。你就算把约束条件写好,也只能使Label的高度和cell的高度自适应,但是cell除了要将本人的高度自适应以外,还要在TableView的delegate里返回正确的高度,这是你的约束解决不了的情况,要改变cell的高度,只能通过reload cell,然后在heightForRow里返回正确的高度。

在自定义的Cell里公开一个类方法作为接口,这个接口接收一个数据源(例如你的Label的text),在这个类方法里计算高度并返回。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明NSLayoutConstraint对于自定义tableviewCell 采用自动布局。UIlabel换行会出现行高偏差
喜欢 (0)
[1034331897@qq.com]
分享 (0)