- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iOS开发-自动布局篇:自动布局教学
一、AutoLayout介绍
UI布局对于iOS开发者来说并不陌生,在iOS6之前,大家都是通过UI控件的Frame属性和Autoresizing Mask来进行UI布局的。AutoLayout则是苹果公司在iOS6推出的一种基于约束的,描述性的布局系统。自从AutoLayout问世以来,逐步得到了iOS开发者们的青睐,尤其是iPhone6机型尺寸的出现,让AutoLayout从此走向人生巅峰,下面来看看它的特殊之处。
AutoLayout占据UI布局的主要领导位置依赖于它的特殊性:
1).基于约束:和以往定义frame的位置和尺寸不同,AutoLayout的位置确定是以所谓相对位置的约束来定义的,比如x坐标为superView的中心,y坐标为屏幕底部上方10像素等
2).描述性: 约束的定义和各个view的关系使用接近自然语言或者可视化语言(稍后会提到)的方法来进行描述
3).布局系统:即字面意思,用来负责界面的各个元素的位置。
总而言之,AutoLayout为开发者提供了一种不同于传统对于UI元素位置指定的布局方法。以前,不论是在IB里拖放,还是在代码中写,每个UIView都会有自己的frame属性,来定义其在当前视图中的位置和尺寸。使用AutoLayout的话,就变为了使用约束条件来定义view的位置和尺寸。这样的最大好处是一举解决了不同分辨率和屏幕尺寸下view的适配问题,另外也简化了旋转时view的位置的定义,原来在底部之上10像素居中的view,不论在旋转屏幕或是更换设备(iPad或者iPhone5或者以后可能出现的mini iPad)的时候,始终还在底部之上10像素居中的位置,不会发生变化。 总的来说:使用约束条件来描述布局,view的frame会依据这些约束来进行计算。
二、AutoLayout使用原理:
创建约束,iOS6中新加入了一个类:NSLayoutConstraint。它的约束满足这个公式:
item1.attribute = multiplier ? item2.attribute + constant
对应的代码为
//view_1(红色)top 距离self.view的top
NSLayoutConstraint *view_1TopToSuperViewTop = [NSLayoutConstraint constraintWithItem:view_1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:30];
这里对应的约束是“view_1的顶部(y)= self.view的顶部(y)*1 + 30”。
添加约束,在创建约束之后,需要将其添加到作用的view上。UIView添加约束的实例方法:
- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0);
- (void)addConstraints:(NSArray__kindof NSLayoutConstraint * *)constraints NS_AVAILABLE_IOS(6_0);
用来将约束添加到view。在添加时唯一要注意的是添加的目标view要遵循以下规则:
1).对于两个同层级view之间的约束关系,添加到他们的父view上
2).对于两个不同层级view之间的约束关系,添加到
您可能关注的文档
- 移动商务视觉设计2 综合设计 课程实训设计--校正产品颜色.docx
- 移动商务文案写作 2.3.2拓展阅读 2.3.2拓展阅读:产品卖点提炼.docx
- 移动商务应用开发实训 电子商务技术17级 4 2016年上学期课程设计报告书(样本).docx
- 移动通信技术应用 LTE相关规范 36212-880.doc
- 移动通信网络优化课程资源 LTE网络优化 LTE沪宁高铁网络优化案例.doc
- 移动网络规划和优化分析 覆盖增强策略——直放站 覆盖增强策略之直放站技术.docx
- 移动营销实务2 O2O模式 2016年中国O2O市场发展概况.docx
- 移动应用服务器端开发(基于JSP技术)-2017 GridView 实验报告:网格视图.doc
- 移动应用软件开发(基于iOS平台)-2017 生日快乐歌 为界面2添加动画 gjs.docx
- 移动应用软件开发(基于iOS平台)-2017 挑战CodeMonkey游戏 第九关 gjs.docx
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)