对于屏幕适配的结果,可点击运行软件右上方的双环,下选那个书页形状标记中的PreView可以预览在不同尺寸中的位置。
- Autoresizing技术特点:(必须关闭AutoLayout)
- 横竖屏适配相对简单
- 子控件跟父控件的行为自动发生相应的变化(只解决父子控件的相对问题)兄弟控件的相对问题不能解决,要解决可使用AutoLayout技术
子控件在父控件的位置固定可通过把对应的Autoresizing中的外围虚线点实即可。若子控件在某方向上的大小对应屏的比例进行自动伸缩,则将对应的Autoresizing中的图内部虚线点实即可。
UIViewAutoresizingFlexibTopMargin = 1 //底部固定
UIViewAutoresizingFlexibButtonMargin = 1 //顶部固定
UIViewAutoresizingFlexibRightMargin = 1 //左部固定
UIViewAutoresizingFlexibLeftMargin = 1 //右部固定
UIViewAutoresizingFlexibWidthMargin = 1 //宽度随父控件自行伸缩
UIViewAutoresizingFlexibHeightMargin //高度随父控件自行伸缩
AutoLayout功能比Autoresizing强大
根据具体情况需要,若在约束功能里边的constrain to margins前面打钩,则显示的最终结果是自定义的值加上系统为Plus默认边距留出的16.
如果拖的控件中有报红,是约束不完整或约束冲突的问题。
- 对于兄弟控件的相对问题:
- 若同高同宽,两控件要全选,才能进行设置。
- 可通过拖线去设置,以一个为参照,另一个拖线到这个控件进行改值即可
通过AutoLayout对UILabel进行设置,对上,左和宽进行设置,高度会因为内部的内容自行伸缩。若宽度也因为文字的多少而改变,且最长不超过一个值,则在设置好宽度后,在右边栏中找到对应的设置线进行Edit。【双击后把First Item 选成Less Than Or Equal】
在修改了约束之后,只要执行下边的代码,就能做出动画效果。
[UIView animateWithDuration:1.0 animations:^{
[添加了约束的view layoutIfNeeded];
}];