Autolayout浅析


- 笔者最近研究Autolayout的发现,有一些规律
- 比如一般我们新建一个项目,默认Main.storyboard里面的控制器是一个正方形,Size是inferred类型,通常我们就在这里面进行Autolayout的布局,这个学的就是这样,没有问题。
- 那么问题来了,做过翻页效果的小伙伴都知道,自定义一个控件来实现,通过xib来实现,那么那个最开始的那个UIView的尺寸,我们要关心嘛?Size是inferred类型,还是自由类型,然后更改它的尺寸,比如宽300高130,在第一个里面设置子控件的约束,还是在那个宽300高130的里面给子控件设置约束,笔者特地实验了一把,发现这个没有关系,随便你怎么设置,为什么?
- 因为,你的那个最初的UIView尺寸会根据外面的尺寸而改变,不是由自己设置的尺寸决定的,那么,笔者认为,我们需要管理的就是里面的子控件的约束,相对于最初的那个UIView的约束,其他的也不用关心,因为你设置好里面的子控件的约束之后,它会自动去适配父控件的尺寸,不用你关心,如果还要你关心,那么苹果就做的不好


warning 默认新建的xib里面的UITableCell的尺寸宽是320,高是44,当初理解为会像新建的storyboard里面的正方形一样,在里面开始布局,添加约束,因为那个正方形的size是inferred类型,可推测的,然而UITableViewCell是默认给的,这个不重要,就算你给了宽160,高40,它显示的时候不是由自己决定的,而是由它的tableView来决定,高度由tableView.rowHeight来决定,宽度和tableView的宽度一样的,所以,在那个320*44里面添加子控件并添加相应的约束,没有什么问题,它会默认按照那个约束显示的,over

 

 

 

posted @ 2016-01-31 23:57  Z了个L  阅读(129)  评论(0编辑  收藏  举报