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

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

  • Autoresizing技术特点:(必须关闭AutoLayout)
  1. 横竖屏适配相对简单
  2. 子控件跟父控件的行为自动发生相应的变化(只解决父子控件的相对问题)兄弟控件的相对问题不能解决,要解决可使用AutoLayout技术
    屏幕适配--Autoresizing和AutoLayout的区别_第1张图片
    屏幕快照 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的区别)