自动布局(AutoLayout)中更新视图布局的几种方式

根据视图的类型,分为以下几种情况:

1,对于具有固有内容尺寸(intrinsicContentSize)的视图类型,如UILabel, UIButton, UIImageView, UITextView等,其高度取决于内容的高度,所以不需要显示的设置其约束中的高度属性。

2,对于UIScrollView,设置好子视图的约束后,系统会自动自动调整大小。

3,对于UITableView、UICollectionView等存在复用内容的视图,如果需要将其作为一个子视图插入到其他视图中时(例如UITableViewCell中嵌套一个UITableView),需要手动计算UITableView的ContentSize,然后更新其高度。

4,对于自定义视图,可以在视图的模型被设定(modelDidSet)时,更新子视图的约束。然后在外部调用该视图的sizeToFit()方法,更新该视图的大小。

一篇对AutoLayout介绍的比较深入的文章:
http://chuquan.me/2019/09/25/systematic-understand-ios-autolayout/

你可能感兴趣的:(iOS开发)