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

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


【界面布局 - View的定位】

iOS界面初解


UIview 表示屏幕上一块矩形区域;负责提供相应区域的显示内容;也处理相应区域的事件响应。



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】


设置界面

相较于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操作处


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容