浅谈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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 iPhone自诞生以来,随着其屏幕尺寸不断的多样化,屏幕适配的技术一直在发展更新。目前,iOS系统版本已经更...
    VV木公子阅读 15,475评论 24 170
  • 1.尺寸适配1.原因 iOS7中所有导航栏都为半透明,导航栏(height=44)和状态栏(height=20)不...
    LZM轮回阅读 6,149评论 1 4
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,252评论 4 61
  • 就是那个冬天,邹天鸣第一次迈进了她家的门,端起她家的碗,喝了父亲一直没有舍得喝的酒。那天父亲也很兴奋,和天鸣喝得尤...
    da7231f392c4阅读 347评论 0 2
  • 金黄, 乘一片落叶飘来, 悠悠洒洒, 撞开你的心怀。 多愁善感, 恰似与生俱来, 把它夹进书页, 陪着你一起感叹时...
    伊凡轩阅读 142评论 0 0