美文网首页iOS开发iOS学习笔记
苹果常用的布局方式

苹果常用的布局方式

作者: Calvin_Shen | 来源:发表于2016-12-21 11:26 被阅读57次

    知识点:

    1、需要重新布局时,常用的系统方法的调用顺序是怎样的?

    答:当一个视图需要重新布局时,系统方法的调用顺序为:
    (1) step1:控制器的viewWillLayoutSubViews方法
    (2) step2:各个子视图的layoutSubViews方法
    (3) step3:控制器的viewDidLayoutSubViews方法


    2、AutoResizing和AutoLayout的区别?

    答: AutoResizing布局是什么?
    比较老的的自动布局技术,操作简单,API简单,功能也简单,有一定的局限性,很久以前叫(struts/spring(架构/弹簧)技术
    核心理念:当界面大小发生变化是,对子视图进行同比例的变化
    编写代码实现AutoResizing设置视图的autoresizingMask属性即可,代码设置时,规则的描述与在检查器中点亮红线的描述要相反,如,在检查器中点亮左,上为固定距离时,那么用代码描述就要说视图的右、下为长度可变
    AutoLayout布局是什么?
    苹果设计的新的布局技术,功能强大,操作复杂,从xcode5开始,慢慢好用,在xcode6中,有配合sizeClassed技术完成屏幕适配工作
    工作原理
    1)通过一系列的“约束constraint”来描述视图的展示位置
    2)什么是约束?代表一个条件,只需要设定一些约束,则系统就会根据这一堆约束,自动计算出符合约束的frame;
    3)如何创建约束
    方式一:在故事板中可视化配置
    方式二:用代码创建
    4)约束的两个原则
    1.描述清楚(如果不清楚,约束变成橙色)
    2.互不冲突(如果冲突,回显示红色)


    3、使用代码添加约束,添加在什么地方?以及相互冲突的约束如何解决?

    答:这个是系统默认添加约束的方法,它是NSLayoutConstraint的类方法:

        @param view1      传入想要添加约束的控件
        @param attr1      传入想要添加约束的方向,这个枚举值有很多,可以自己看看
         @param relation   传入与约束值的关系,大于,等于还是小于
         @param view2      传入被参照对象
         @param attr2      传入被参照对象所被参照的方向,如顶部,左边,右边等等
        @param multiplier 传入想要的间距倍数关系
        @param c          传入最终的差值
        @return NSLayoutConstraint对象
    +(instancetype)constraintWithItem:(id)view1attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relationtoItem:(id)view2 attribute:(NSLayoutAttribute)attr2multiplier:(CGFloat)multiplier constant:(CGFloat)c
    

    使用代码添加一个视图的约束要添加到这个视图的父视图中;如果有多个约束相互冲突,解决冲突的办法或者删除其他的约束,保留一个;或者可以通过设置约束的优先级,在约束相互冲突时,优先执行某个约束,忽略其他冲突的约束;

    相关文章

      网友评论

        本文标题: 苹果常用的布局方式

        本文链接:https://www.haomeiwen.com/subject/ubhqvttx.html