美文网首页
屏幕适配--Autoresizing和AutoLayout的区别

屏幕适配--Autoresizing和AutoLayout的区别

作者: 钎探穗 | 来源:发表于2016-05-21 22:20 被阅读56次

    对于屏幕适配的结果,可点击运行软件右上方的双环,下选那个书页形状标记中的PreView可以预览在不同尺寸中的位置。

    • Autoresizing技术特点:(必须关闭AutoLayout)
    1. 横竖屏适配相对简单
    2. 子控件跟父控件的行为自动发生相应的变化(只解决父子控件的相对问题)兄弟控件的相对问题不能解决,要解决可使用AutoLayout技术
      屏幕快照 2016-06-17 下午10.55.40.png

    子控件在父控件的位置固定可通过把对应的Autoresizing中的外围虚线点实即可。若子控件在某方向上的大小对应屏的比例进行自动伸缩,则将对应的Autoresizing中的图内部虚线点实即可。

    UIViewAutoresizingFlexibTopMargin = 1   //底部固定
    UIViewAutoresizingFlexibButtonMargin = 1    //顶部固定
    UIViewAutoresizingFlexibRightMargin = 1      //左部固定
    UIViewAutoresizingFlexibLeftMargin = 1        //右部固定
    UIViewAutoresizingFlexibWidthMargin = 1     //宽度随父控件自行伸缩
    UIViewAutoresizingFlexibHeightMargin    //高度随父控件自行伸缩
    

    AutoLayout功能比Autoresizing强大

    根据具体情况需要,若在约束功能里边的constrain to margins前面打钩,则显示的最终结果是自定义的值加上系统为Plus默认边距留出的16.

    如果拖的控件中有报红,是约束不完整或约束冲突的问题。


    • 对于兄弟控件的相对问题:
    1. 若同高同宽,两控件要全选,才能进行设置。
    2. 可通过拖线去设置,以一个为参照,另一个拖线到这个控件进行改值即可

    通过AutoLayout对UILabel进行设置,对上,左和宽进行设置,高度会因为内部的内容自行伸缩。若宽度也因为文字的多少而改变,且最长不超过一个值,则在设置好宽度后,在右边栏中找到对应的设置线进行Edit。【双击后把First Item 选成Less Than Or Equal】


    在修改了约束之后,只要执行下边的代码,就能做出动画效果。

    [UIView animateWithDuration:1.0 animations:^{
    [添加了约束的view layoutIfNeeded];
    }];
    

    相关文章

      网友评论

          本文标题:屏幕适配--Autoresizing和AutoLayout的区别

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