您的位置:首页 > 其它

屏幕适配、Autoresizing、Autolayout

2015-06-27 16:23 302 查看

屏幕适配、Autoresizing、Autolayout、

标签(空格分隔): ios基础

屏幕适配

iPhone4之前

没有适配,不用适配

经常会出现坐标值写死的代码

//#define ScreenW 320
//#define ScreenH 480
#define ScreenW [UIScreen mainScreen].bounds.size.width
#define ScreenH [UIScreen mainScreen].bounds.size.height

// 创建一个显示在屏幕右下角的按钮
CGFloat buttonW = 100;
CGFloat buttonH = 50;
button.frame = CGRectMake(ScreenW - buttonW, ScreenH - buttonH, buttonW, buttonH);


iPad出现以后

需要横竖屏适配

出现了一种方便的屏幕适配技术:Autoresizing

局限性:仅仅能解决子控件和父控件之间的相对关系问题

iOS6开始(Xcode4开始)

出现了一种新的屏幕适配技术:Autolayout

解决任何控件之间的相对关系问题

iOS8开始(Xcode6开始)

出现了一种新的屏幕适配技术:Sizeclass

Autoresizing

注意点:

- UIViewAutoresizingFlexible
Left
Margin = 1 << 0,

- 距离父控件
左边
的间距是伸缩的

- UIViewAutoresizingFlexible
Right
Margin = 1 << 2,

- 距离父控件
右边
的间距是伸缩的

- UIViewAutoresizingFlexible
Top
Margin = 1 << 3,

- 距离父控件
上边
的间距是伸缩的

- UIViewAutoresizingFlexible
Bottom
Margin = 1 << 5

- 距离父控件
下边
的间距是伸缩的

- UIViewAutoresizingFlexible
Width
= 1 << 1,

-
宽度
跟随父控件
宽度
进行伸缩

- UIViewAutoresizingFlexible
Height
= 1 << 4,

-
高度
跟随父控件
高度
进行伸缩

Autolayout

2个核心概念

约束

尺寸约束

width约束

height约束

位置约束

间距约束(上下左右间距)

参照

所添加的约束跟哪个控件有关(相对于哪个控件来说)

常见单词

Leading -> Left -> 左边

Trailing -> Right -> 右边

UILabel实现包裹内容

设置宽度约束为 <= 固定值

设置位置约束

不用去设置高度约束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: