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

1、autoresizing:

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

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

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

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

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

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

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


2、autolayout :

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

具体使用,就在如图的位置设置就好。多的我也不说啦。

使用注意事项:在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的布局问题。

mark一下:http://blog.csdn.net/abelyulbb/article/details/52296173

你可能感兴趣的:(浅谈autoresizing和autolayout的区别以及注意事项)