【极客班】iOS(2-4节)听课笔记

本周的授课内容主要是页面的布局,其中比较重要的是Autolayout 一节


【界面布局 - View的定位】

iOS界面初解


【极客班】iOS(2-4节)听课笔记_第1张图片
UIview 表示屏幕上一块矩形区域;负责提供相应区域的显示内容;也处理相应区域的事件响应。



【极客班】iOS(2-4节)听课笔记_第2张图片
iOS界面由一个树状的UIView层次结构组成

UIKit的坐标系

按照用户习惯,坐标原点设在了左上的位置

描述点:

CGPointMake(x,y)

CGPointEqualToPoint(p1,p2)

描述尺寸:

CGSizeMake(w,h)   //width,height

CGSizeEqualToSize (sz1,sz2)

描述形状(矩形)

CGRectMake(o,s)  //oringin,sizie

CGRectEqualToRect(r1,r2)

CGRextInset(r,dx,dy)  //矩形缩放

frame(框)

可以用 view.frame:CGRect 把view里的rect取出来,并可进行修改,更改调入的Rect,但是应当替换新的Rect而不是直接修改属性数值,否则会报错。

bounds(边界)

上级视图提供放置子视图的区域

(注意绝对坐标和相对坐标的区别)

bounds.origin 的作用

view 定位 - Center

视图的中心点

view.frame.origin = center - size/2

图形的变化(缩放)都是以center为中心进行


【Autoresizing】


【极客班】iOS(2-4节)听课笔记_第3张图片
设置界面

相较于Autolayout的优势

更方便(尤其是处理一些简单的代码时)

在interface里构造的Nib(stroyboard和Xib),由他们实例化出来的界面对象默认都会开着Autoresizing。(另:UIView. autoresizesSubviews默认为YES,可以设为NO关闭)


【Autolayout】

基础知识:

->用约束条件(constraint)描述View定位属性之间的关系

->Autoresizing只能描述上下级视图之间的关系

->Autolaout支持更多样的视图关系和定位属性

Autolaout 是一种Opt-in技术

->可以非常灵活的开关

->nib 有 “Use Auto Layout”选项

->可以用代码添加constraint,从而在涉及的view上启用Autolayout

->UIView子类自己决定

- requiresConstraintBasedLayout返回YES


几处有用的Autolayout操作处


【极客班】iOS(2-4节)听课笔记_第4张图片
【极客班】iOS(2-4节)听课笔记_第5张图片
【极客班】iOS(2-4节)听课笔记_第6张图片

你可能感兴趣的:(【极客班】iOS(2-4节)听课笔记)