ios使用自动布局autolayout

在ios开发中经常用到自动布局,比如屏幕旋转来,界面就要从新摆放,不然就会显示不全。

自动布局一定要在storyboard界面里面设置,不能用纯代码的形式来写

要使用自动布局,首先要确保interface builder document里面的Use Auto Layout 和Use Size Classes 选项已经勾选??上了

图1:打开auto layout

这样在storyboard的右下角就会出现几个图形按钮:   分别是:stack、align、pin、和resolve auto layout issue 。

现在我们就可以开始设置自动布局的各种约束了

方法一:借助蓝色线来辅助:

在这里例子里,我把Thing0放在左上角,这时会出现两根蓝色线,然后点击reslove auto layout issue里面的Reset to Suggested Constraints 用建议的约束来重置,重置完后点击Thing0就能看到约束的线,在右边的size inspector可以看到各种约束

图2:设置Thing0靠近蓝色辅助线

图3:设置系统建议的约束

图4:在尺寸面板可以查看所有约束条件和设置约束值

点击Edit可以编辑约束条件的值,我们一般选择standard标准值,因为我们不想看到魔数,用魔数是个不好的习惯。

 

图5:设置auto layout的约束条件时出现很多警告的解决方法

在这里,我的Thing0由于被我拉伸过,所以在文件大纲出现了黄色的警告符??,点击警告??进入警告列表,里面有各种约束警告,在点击警告符??,xcode就会弹出可以让你选择的解决方案,选择你要使用的解决方案,再Fix 按钮,修复。

图6:运行程序

运行程序,不管竖屏还是横屏,Thing0都摆在了我想要放的地方

方法二:点击控件按Ctrl+鼠标移动方向来设置

这种方法类似与设置输出口Outlet和点击事件Action:

这里我把Thing1和Thing0靠近,我想让Thing1的自动布局依赖于Thing0,点击Thing1 按Ctrl拖动鼠标到Thing0上,松开后xcode就会弹框让你选择约束条件,可以这里可以选择Leading 、Center Horizontally、Trailling等,分别是前列、中心水平、后面对齐,添加完想要的约束条件后点击Thing1就能看到约束线

图7:通过拖拽的方式设置约束条件

图8:运行程序

运行程序,竖屏横屏都能正确摆放;

方法三:点击控件后直接添加约束

在这个例子里,我把Thing0的约束清空了,没有任何的约束条件,也没有借助蓝色辅助线。

点击Thing0后,再点击四个控件:中的Pin也就是第三个,就会弹出让你设置约束的各种条件,包括上下左右的间距约束等。

设置好约束条件后,点击add 2 constraints 控件Thing0的约束就设置好了

图9:通过点击控件来直接

图 10:程序运行  

程序运行,Thing0摆放正确

时间: 2024-10-12 04:39:12

ios使用自动布局autolayout的相关文章

自动布局AutoLayout

Auto Layout 是iOS6发布后引入的一个全新的布局特性,其目的是弥补以往autoresizing在布局方面的不足之处,以及未来面对更多尺寸适配时界面布局可以更好的适应. 要完全掌握 Auto Layout 是一件非常消耗精力的事情,需要大量的实践,并且在根本上面,理解其如何使用,如果要全面的介绍 Auto Layout 和使用场景估计几篇博文都介绍不完, 本文希望能将使用 Auto Layout 的重点和技巧以及注意事项,进行一个介绍.成为学习 Auto Layout 的一个导航文章.

iOS 之自动布局

     项目要做iPhone版和iPad的适配,就找了一些资料 关于iOS的自动布局,学习的一些收获以及心得给大家分享一下.       xib的布局就不说了,就是线的连接,主要分享一下纯代码的一些自动布局的学习心得.       Autolayout的强大是毋庸质疑的,当你熟悉了它之后,你肯定会觉得它很方便的实现布局,布局将会比使用frame的绝对坐标时还方便.      UIView *superview = self; UIView *view1 = [[UIView alloc] in

iOS的自动布局

iOS的自动布局 一.StoryBoard和Xib的简介 在这之前先简略介绍一下Xib/nib和StoryBoard. Xib/nib其实可以认为是一样的,nib是iOS3.0前的产物,它的本质是一个装着可执行二进制文件的文件夹.Xib的本质则是一个xml类型的描述文件,可以实现可视化的编程.两者在在UIViewController的生命周期方法loadView方法前都会转换成可执行的nib文件. StoryBoard是多个Xib的集合的描述,也是xml格式的. Storyboard和Xib的区

自动布局(AutoLayout)使用

/*1. 创建控件,并添加到当前的View中*/ self.rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; self.rightButton.translatesAutoresizingMaskIntoConstraints = NO; [self.rightButton setTitle:@"RightButton" forState:UIControlStateNormal]; [self.view 

如何解决IOS 动画中 Autolayout 与View Transforms的冲突

IOS 的动画放大与缩小,并非按照找它的中心点放大和缩小,而是左上角 .我分析了下原来是Autolayout 与View Transforms的冲突造成的. - (void) addSubviewWithZoomInAnimation:(UIView*)view duration:(float)secs option:(UIViewAnimationOptions)option { // first reduce the view to 1/100th of its original dimen

iOS之自动布局

iOS的自动布局技术一直都是前端开发所必不可少的,它能使我们开发出来的项目更加规范美观,同时也更加灵活 ,接下来笔者就介绍一下自动布局常用的几种方式,供大家参考~~ 方法一:storyboard 从一开始做iOS开发,只考虑适配4s,直接把坐标,长宽都写成固定值. 之后考虑适配5s,在界面上设定好一 bbs.chinaacc.com/forum-2-26/topic-5619705.html bbs.chinaacc.com/forum-2-26/topic-5619701.html bbs.c

ios之用Autolayout均匀平铺排列多个button按钮

前言: iPhone的屏幕越来越大,然而适配起来比较复杂,不得不用Autolayout来写代码,今天就简单的实现了一个均匀平铺view的功能.学会了这个功能以后,以后所有的适配都是小cass了吧!哈哈(我这么认为). 请看效果: 实现方式就不在博客里写了,直接看Demo吧,很简单的. Demo下载地址:ios之用Autolayout均匀平铺排列多个button按钮

IOS 6 自动布局 入门-1(IOS中autolayout和之前版本autoresize的差异)

http://www.raywenderlich.com/zh-hans/22873/ios-6-%E8%87%AA%E5%8A%A8%E5%B8%83%E5%B1%80-%E5%85%A5%E9%97%A8%EF%BC%8D1 来自Ray:恭喜各位!你们已经通过宣传ios feast提前解锁了第一个有关IOS6的教程. 目前这份教程只是我们的新书iOS 6 By Tutorials里面某个章节的精简版.这份教程由同样著作过iOS Apprentice Series 的Matthijs Holl

iOS学习之自动布局-Autolayout

Autolayout: 最重要的两个概念: 约束:对控件位置和大小的限定条件 参照:对控件设置的约束是相对于哪一个视图而言的 自动布局的核心计算公式: obj1.property1 =(obj2.property2 * multiplier)+ constant value 解释:obj1的property1属性等于obj2的property2属性乘以multiplier(系数)再加constant(常量); 约束的优先级: 约束的priority属性表示约束的优先级,取值区间为[0,1000]