美文网首页iOS
UITableView使用Autolayout在iOS7和iOS

UITableView使用Autolayout在iOS7和iOS

作者: 爱霉霉 | 来源:发表于2015-07-03 21:21 被阅读486次

iOS8之后,苹果出了self-sizing技术。 允许开发者设置这两个属性,从而可以使用Autolayout在heightForRow方法之前算出cell的高度。

Snip20150701_2.png

补充注释:


Snip20150701_3.png

UILabel在使用Autolayout时的注意点:

  • 首先,UILabel在给定宽度时,系统会根据宽度值再进一步设置Label的一个属性


    Snip20150701_4.png

当Label这个属性有值之后,它才知道自己计算自己的文字尺寸时的最大宽度。

因此,如果要在iOS6,iOS7中,使用xib或者storyboard中的Autolayout方式来计算不等高cell的高度,意味着只能先给一个估算高度,然后在heightForRowAtIndexpath返回之前,手动设置UILabel的preferedMaxLayoutWidth属性

Snip20150701_5.png

并且在heightForRowAtIndexpath方法中,需要模仿cellForRowAtIndexpth里创建cell的方式,创建一个不用来显示,仅用来计算cell高度的cell ,并且要拿cell的layoutifneed方法强制布局内部子控件,才能实现在heightForRowAtIndexpath方法中,提前把所有cell的高度计算出来。
附图:

Snip20150701_6.png Snip20150701_7.png

相关文章

网友评论

本文标题:UITableView使用Autolayout在iOS7和iOS

本文链接:https://www.haomeiwen.com/subject/ciryqttx.html