微专业GeekBand-IOS应用开发实战笔记-第四周

微专业GeekBand-IOS应用开发实战笔记-第四周_第1张图片
屏幕快照 2016-04-10 下午10.22.37.png
]( http://upload-images.jianshu.io/upload_images/1699213-9b88a5dd6fc2d0ec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Frame 和 Bounds

bounds.origin 的作用:定义父类左上角的坐标
subview.center 代表子View的中心,用父View的坐标

-CGAffineTransform transform, 子视图不管父试图变不变形,它只会在已经变形过的父视图里绘制。

界面Autoresizing

主要工作:确定界面元素之间的距离

Structs:固定距离
Springs:根据界面尺寸按比例调整

界面AutoLayout

NSLayoutConstraint 只能表示线性关系,Multiplier + constant

Leading(左边)Trailing (右边)会根据语言环境改变而调换

Adaptive:
在不同的界面大小中加入不同的元素,这对于在不同的机型和方向中更改一些约束变得容易。

比如说字体大小:


微专业GeekBand-IOS应用开发实战笔记-第四周_第2张图片
这里代表在宽度为窄的情况下,字体大小为12,其它时候则是14

Stack view:
比如说要使得物品排一排,通过Stack view就可以比较轻松地办到

微专业GeekBand-IOS应用开发实战笔记-第四周_第3张图片
这里使得Name等四个Label排成一排,间距相等

Adaptive Layout

Alignment Rectangle: 布局时视为内容的区域

Content Hugging和Content Compression Resistance,可以通过调整优先级来判断谁会被拉伸和压缩

微专业GeekBand-IOS应用开发实战笔记-第四周_第4张图片
图中虚线就表示这个约束的优先级比较低

updateConstrains
Don’t call it directly
updateConstraintIfNeeded
setNeedsUpdateConstraints

layoutSubviews
must call super if using auto layout
invoke by layoutIfNeeded or setNeedsLayout

可以在调试时字Argument里面显示AlignmentRects

你可能感兴趣的:(微专业GeekBand-IOS应用开发实战笔记-第四周)