iOS7应用开发9:autolayout自动布局

简介: 【时间太紧张,追课的过程中感觉压力很大,时间不够用的问题相当严重。想单靠业余时间自学一门技术果真不是一件容易的事儿,就拿上节课的animation来说吧,文章里基本上只能记录了一下课程的大纲,很多具体的内容都完全没弄清楚,demo也只是完全按照课上的演示逐句敲好。

【时间太紧张,追课的过程中感觉压力很大,时间不够用的问题相当严重。想单靠业余时间自学一门技术果真不是一件容易的事儿,就拿上节课的animation来说吧,文章里基本上只能记录了一下课程的大纲,很多具体的内容都完全没弄清楚,demo也只是完全按照课上的演示逐句敲好。等赶上进度后,肯定是要回来复习的,届时会尽可能细致地研究ios开发的细节问题。】

1、自动布局的概念:

自动布局会在不同的设备屏幕尺寸或者设备的摆放位置(垂直/水平),以及其他显示视图面积发生改变的时候,自动地设置显示的视图的位置。自动布局设置视图的位置更多地依赖于某种“规则”,而不是预先设置好的坐标点位置。这些所谓的“规则”,可以认为是某一个视图同其父视图或者其他兄弟视图之间的位置关系。

实现自动布局的api(或者说,某个类):NSLayoutConstraint;更方便地方法可以通过xcode 5可视化方法实现。

2、自动布局实现方法:

举例说明,在storyboard中,有两个视图,在垂直模式时一上一下;当方向调整为水平模式时,下面的视图可能会消失,如下图所示:

 

如果想对这个问题进行改进的话,比如我们想让这两个视图始终相对于屏幕处于一个固定的位置,如按键1位于左上角,按键2位于右下角。主要有三种方法:

(1)在设计视图时将视图紧贴蓝色的位置提示线,并如下图所示,选中“Reset to Suggested COnstraints in View Controller”


此时选中刚才所设置的view,在size inspector中将会出现两个constraints,如下图所示:


这两个限制条件将决定了在屏幕变化的时候该视图的位置,而其大小由其内部的文本属性决定(通常情况不要对label、button等添加视图尺寸限制)。设置完成后,再次改变设备模拟器的方向,显示结果如下图所示:


由此可知,这两个视图已经可以根据屏幕的变化自适应地调整位置了。

PS:如果限制条件设置错了,可以在storyboard中执行“Clear All Constraints in View Controller”来清除全部constraints,然后重新设置即可。

(2)对某一个处在中央的视图,选中之后,在storyboard中选择Add New Alignment Constraints,选择最下面的两项,并添加(Add 2 constraints),如下图所示。这样,所选中的视图将会始终位于屏幕的最中央。


若出现问题,如位置、大小不匹配等,会显示警告,可选择各种解决方法,如改变Frame,改变constraints等。一般系统提供的解决方法都能奏效。

如果改变了视图的位置而没有改变constraints,也会出现相应的警告。

(3)通过在两个视图之间ctrl+拖动的方法建立constraints:在出现的菜单中,选择二者位置关系的constraints,如下图所示:


除此之外,子视图和父视图之间,甚至子视图和自己之间也可以通过ctrl+拖动的方式建立联系。如下图所示:



目录
相关文章
|
8天前
|
搜索推荐 数据管理 定位技术
iOS应用开发中有多种主流框架
iOS应用开发中有多种主流框架
124 60
|
8天前
|
Android开发 Swift iOS开发
深入探索iOS与Android操作系统的架构差异及其对应用开发的影响
在当今数字化时代,移动设备已经成为我们日常生活和工作不可或缺的一部分。其中,iOS和Android作为全球最流行的两大移动操作系统,各自拥有独特的系统架构和设计理念。本文将深入探讨iOS与Android的系统架构差异,并分析这些差异如何影响应用开发者的开发策略和用户体验设计。通过对两者的比较,我们可以更好地理解它们各自的优势和局限性,从而为开发者提供有价值的见解,帮助他们在这两个平台上开发出更高效、更符合用户需求的应用。
|
1月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
59 3
|
17天前
|
Android开发 Swift iOS开发
探索iOS与安卓应用开发的差异性
探索iOS与安卓应用开发的差异性
37 2
|
1月前
|
Java Android开发 Swift
掌握安卓与iOS应用开发:技术比较与选择指南
在移动应用开发领域,谷歌的安卓和苹果的iOS系统无疑是两大巨头。它们不仅塑造了智能手机市场,还影响了开发者的日常决策。本文深入探讨了安卓与iOS平台的技术差异、开发环境及工具、以及市场表现和用户基础。通过对比分析,旨在为开发者提供实用的指导,帮助他们根据项目需求、预算限制和性能要求,做出最合适的平台选择。无论是追求高度定制的用户体验,还是期望快速进入市场,本文都将为您的开发旅程提供有价值的见解。
|
1月前
|
物联网 vr&ar Android开发
掌握安卓与iOS应用开发:核心技术与未来趋势
本文深入探讨了安卓和iOS应用开发的核心技术,包括开发环境、主要编程语言、常用框架以及性能优化技巧。同时,文章还展望了两大平台未来的发展趋势,如人工智能、增强现实和物联网的集成,为开发者提供全面的技术参考和发展指引。
|
23天前
|
开发工具 Android开发 Swift
探索iOS与安卓应用开发的异同点
【10月更文挑战第24天】本文通过比较iOS和安卓开发环境,旨在揭示两大移动平台在开发过程中的相似性与差异性。我们将探讨开发工具、编程语言、用户界面设计、性能优化及市场分布等方面,以期为开发者提供全面的视角。通过深入浅出的分析,文章将帮助读者更好地理解每个平台的独特之处及其对应用开发的影响。
|
1月前
|
安全 Android开发 iOS开发
深入解析:安卓与iOS的系统架构及其对应用开发的影响
本文旨在探讨安卓与iOS两大主流操作系统的架构差异,并分析这些差异如何影响应用开发的策略和实践。通过对比两者的设计哲学、安全机制、开发环境及性能优化等方面,本文揭示了各自的特点和优势,为开发者在选择平台和制定开发计划时提供参考依据。
53 4
|
2月前
|
开发工具 Android开发 iOS开发
掌握安卓与iOS应用开发:关键技术与未来展望
本文深入探讨了安卓和iOS平台下的应用开发技术,重点比较了两大平台的架构、开发工具和市场策略。通过分析最新的技术趋势和开发者社区的反馈,文章为读者提供了一个全面的对比视角,旨在帮助开发者做出更明智的平台选择和开发决策。
|
2月前
|
iOS开发 开发者 UED
探索iOS应用开发中的SwiftUI框架
【9月更文挑战第26天】 在iOS开发的海洋中,SwiftUI犹如一艘现代的快艇,引领着开发者们驶向更加高效与直观的编程体验。本文将带你领略SwiftUI的魅力,从其设计理念到实际应用,我们将一步步揭开它如何简化界面构建过程的面纱。通过对比传统方式,你将看到SwiftUI如何让代码变得像诗一样优美,同时保持强大的功能性和灵活性。准备好让你的iOS开发技能加速升级,一起驾驭这股新潮流吧!