浅谈autoresizing和autolayout的区别以及注意事项

1、autoresizing:

               autoresizing使用用来描述 父控件与子控件之间的关系,而不能描述同级控件或者非父子控件关系的其他级控件约束关系。

              通过6根线来描述约束关系。默认为 上左反向的线。表示上、左与父控件间距不变。其他方向和宽高自由。(随父控件变化而变化)。

              这6根线搞明白,基本autoresizing就懂了。这里就不一一解释啦。

                现在一般情况不使用autoresizing了。

浅谈autoresizing和autolayout的区别以及注意事项_第1张图片

使用注意事项:在使用Xib或者SB时,Xcode默认是autolayout。需要取消勾选。在尺寸检测器中,就可以直接设置。

                          在代码创建过程中,Xcode默认是autoresizing。 直接设置就好啦。

               当约束确定后可以修改frame。

2、autolayout :

               autolayout 不仅可以描述子父控件关系,也可以描述同级以及其他级的控件约束关系。

              具体使用,就在如图的位置设置就好。多的我也不说啦。
浅谈autoresizing和autolayout的区别以及注意事项_第2张图片浅谈autoresizing和autolayout的区别以及注意事项_第3张图片

使用注意事项:在Xib和SB的情况下应该不会出现太多的问题,除非约束设置错误。

                        在代码创建的时候,约束添加到哪里这个很重要,记住一个原则除了自身属性约束,其他约束都加在“共同父控件”中。大概解释一下这个“共同父控件”。意思就是:如果A->B->C ,D->E->C 。A和D的共同父控件就为C。

                        在或者:A->B->C. A和B的共同父控件是C。 这样大概意思应该是差不多了。

                        还有一个就是因为代码创建时,Xcode默认是autoresizing,说以需要关掉做约束对象控件的Autoresizing。

          重点:当使用autolayout布局完成后不能直接修改控件的Frame,可以通过设置该控件使用autoresizing。

                      self.myScroll.translatesAutoresizingMaskIntoConstraints = YES;  然后再去修改frame。

                   

                          Masnory的使用和Autolayout的注意是一致的。


     布局这一块有一个大坑,最近可能会更一个关于scrollView的布局问题。

      以上是鄙人的一些粗浅的见解,如果有大牛觉得哪里不对,希望及时纠正,可以QQ我(285160304),也可以博客直接留言。

你可能感兴趣的:(iOS,技术浅谈)