屏幕适配

/*

 一、固定一个控件的步骤:

 1.先确定固定哪几个约束,一般一个控件最多4个约束。

 2.设置约束,技巧:先确定需要固定的约束,再去修改值。为什么不能先修改值,因为如果以后先添加一个约束,会把值还原。

 

 Autolayout经验:

 1、如果一个控件出错,最好先把之前的约束全部   清空,然后再重新添加。

 2、注意使用control方式参照另外一个view,只能添加约束,约束的值默认都是当前的值,如果当前的值不是我们想要的效果,只需要找到对应的约束修改值就好了。

 3、如果需要布局很多子控件,先布局好父控件,在布局子控件。

 4、一般情况下,都是先固定好一个控件,然后其他控件参照这个控件约束。

 5、特殊情况:如果需求中各个子控件的间距一致,宽度需要自动计算,这时候需要把所有子控件拖进去,并且放在一条平行线上进行约束。

 

 

 二、autolayout错误提示:

 黄色警告:当前控件的Frame和约束的Frame不符合,怎么解决:更新frame,cmd + option + =

 红色错误:1.丢失约束(控件的位置不能确定)2.约束冲突(控件的约束多,系统不知道跟随哪一个约束)

 

 三、sizeClass笔记:

 sizeClass作用:用于区别不同屏幕。

 sizeClass的布局使用经验:如果使用了any,any的尺寸,约束控件,就不能在其他的尺寸下去,约束了,否则会报约束冲突,any,any一般不推荐使用,什么时候才使用,如果以后只需要关心一套屏幕适配约束的时候,就可以使用any,any.只要以后需要不同尺寸进行约束,就需要根据不同尺寸的进行屏幕适配。

 

 sizeClass中添加子控件的经验,如果一个控件在任何屏幕下都需要显示,在any,any的尺寸下先拖进去,而不是先确定屏幕尺寸,再去拖控件,会容易造成一个Bug,控件在另外一种尺寸下消失。

 

 images.xcassets里面也可以根据不同的尺寸,设置不同的图片

 *:any

 -:compant

 +:regular

 

 

 四、autoresizingautolayout区别和使用注意

 只要我们项目中使用autoresizing,必须把autolayout,两个不能同时支持

 autoresizing:依赖于frame

 autoresizing:只能用于子控件和父控件产生联系

 

 autolayout:用于各个控件之间产生联系

 autolayout:不依赖与frame

 

 以后枚举中如果有移位运算符<<,>>,就可以用并|,表示同时支持多个枚举

 UIViewAutoresizingNone                 = 0, 不拉伸

 UIViewAutoresizingFlexibleLeftMargin   = 1 << 0, =》左边间距需要随着父控件拉伸而拉伸

 UIViewAutoresizingFlexibleWidth        = 1 << 1, =》宽度需要随着父控件拉伸而拉伸

 UIViewAutoresizingFlexibleRightMargin  = 1 << 2, =》右边间距需要随着父控件拉伸而拉伸

 UIViewAutoresizingFlexibleTopMargin    = 1 << 3, =》顶部间距需要随着父控件拉伸而拉伸

 UIViewAutoresizingFlexibleHeight       = 1 << 4, =》高度间距需要随着父控件拉伸而拉伸

 UIViewAutoresizingFlexibleBottomMargin = 1 << 5  =》底部间距需要随着父控件拉伸而拉伸

 

 

 五、autolayout公式:firstItem.top = second.bottom * multiplier + Constant

    multiplier:乘积

 

 六、autolayout:练习

 练习1:搞四个子控件,分别固定在左上角,右上角,左下角,右下角。

 练习2:搞两个子控件,蓝色view固定在左右两边间距20,上边距离父控件20,高度固定。红色相对蓝色垂直间距为20,红色和蓝色左边对齐,宽度和高度相等

 练习3:搞两个子控件,蓝色view固定在左右两边间距20,垂直居中,高度固定。红色相对蓝色垂直间距为20,红色和蓝色左边对齐,宽度和高度相等

 练习4:底部四个控件,每个控件宽高一致,间距一样,高度固定

 0:高:30,左边,下边,右边20

 1:高:30 下边,右边,20,宽度等于0控件的宽度

 练习5:游戏布局:背景图片居中,高度固定,左右间距0

 

 七、storyboard中专业名称解释

 按照control键参照另外一个控件的专业术语解释:

 Horizontal Space:水平间距

 Vertical Space:垂直间距

 Centen Y:中心点Y值一致,用来固定控件垂直

 Centen X:中心点X值一致,用来固定控件水平位置

 TOP:顶部一致

 Bottom:底部一致

 Equals Widths:宽度相等

 Equals Heights:高度相等

 

 如何让一个控件是另外控件宽度一半:先让两个控件的宽度产生关系,然后再修改值。

 red.width = blue.width * 0.5 + 0

 

 八、Autolayout代码实现

 一、如何判断约束添加到哪个view,如果约束中参考了其他view,就添加到父控件上,如果只参照自己(宽,高),都是添加到自身控件上。

 

 

 */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值