自动布局

Autolayout是一种“自动布局”技术,专门用来布局UI界面

Autolayout能很轻松地解决屏幕适配问题

Autolayout的两条核心概念:

>1 参照:通过参照其他控件或父控件来设置当前控件地位置和大小

>2 约束Constraints(规则):通过添加约束限制控件地位置和大小

代码实现Autolayout的步骤

1. 利用NSLayoutConstraint类创建具体的约束对象

2. 添加约束对象到相应的view上

- (void)addConstraint:(NSLayoutConstraint *)constraint;

- (void)addConstraints:(NSArray *)constraints;

  1. 代码实现Autolayout的注意点:

1》 要先禁止autoresizing功能,设置view的下面属性为NO

view.translatesAutoresizingMaskIntoConstraints = NO;

2》 添加约束之前,一定要保证相关控件都已经在各自的父控件上

3》不用再给view设置frame

一个NSLayoutConstraint对象就代表一个约束

创建约束对象的常用方法

+(id)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2 attribute:(NSLayoutAttribute)attr2 multiplier:(CGFloat)multiplier constant:(CGFloat)c;

view1 :要约束的控件

attr1 :约束的类型(做怎样的约束)

relation :与参照控件之间的关系

view2 :参照的控件

attr2 :约束的类型(做怎样的约束)

multiplier :乘数

c :常量

自动布局有个核心公式

obj1.property1 =(obj2.property2 * multiplier)+ constant value

时间: 2024-10-19 12:55:46

自动布局的相关文章

SDAutoLayout:比masonry更简单易用的自动布局库

SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLayout 视频教程:http://www.letv.com/ptv/vplay/24038772.html] ☆新增:cell高度自适应 + label文字自适应☆ >>>>> tableview cell 自动高度设置只需要3步 1. >> 设置cell高度自适应:

ios-AutoLayout(自动布局代码控制)简单总结

转自:http://blog.sina.com.cn/s/blog_7c336a830102vaht.html 原理:IOS6.0 之后,苹果优化了UI界面的布局方式,提出了自动布局的概念,和之前的autoresizing相比功能更强大.子视图基于父视图的自动布局显示.都是父视图去添加对子视图的约束. 在这里主要说的是通过代码对自动布局视图的实现. 代码中一般用到的有两个添加约束的方式: 1.- (void)addConstraint:(NSLayoutConstraint *)constrai

轻量级应用开发之(06)Autolayout自动布局

一 什么是Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的. 自IOS7 (Xcode 5)开始,Autolayout的开发效率得到很大的提高. 苹果官方也推荐开发者尽量使用Autolayout来布局UI界面. Autolayout能很轻松的解决屏幕适配的问题. 1. 关闭自动布局 打开面板(Main.storyboard)-> 点击 View Controller -> 取消 Use Auto Layout . 默认是  302 * 520 的尺寸,

使用第三方框架 Masonry 实现自动布局

使用第三方框架 Masonry 实现自动布局 时间:2015-02-10 11:08:41      阅读:4595      评论:0      收藏:0      [点我收藏+] 由于前两天都在学习自动布局的使用,但是又觉得苹果原生的方式太过于麻烦,而且也不易于理解,昨天听人说了有个第三方框架也可以实现自动布局的功能,然后在https://github.com/上找到了Mansonry这个框架,使用起来真的减少了很多时间,而且代码直观,更加容易理解. 送上源码地址:https://githu

iOS 自动布局扩展应用:代码中动态调整布局常量

一.设计需求 iOS Storyboard 自动布局技术,是iOS 6才出来的新技术,相当于多屏幕分辩率下自适应的技术. 但是一些复杂情况还是难处理. 比如有一个界面需求,进度条上显示标签,这个需求不难,难的是显要在显示表格框内,在各种机型显示正常. 最初设定是垂直居中向上偏15个像素 这是iPhone 4S 显示效果,下面与滑块还有错位 但是在iPhone 6下显示,下面有错位,但是上面留空太多 但如果把偏移量设为21.则出现另一种情况. 大屏幕的手机显示完美. 但是iPhone 4S下就错位

使用第三方框架 Keep Layout 实现简单的自动布局

之前有写了一篇Masonry实现自动布局的随笔,今天无聊的时候又发现了另外一个自动布局的第三方框架Keep Layout,使用起来感觉比Masonry简单一点,相比之下容易理解? 附上源码地址:https://github.com/iMartinKiss/KeepLayout 关于一些属性的介绍: 属性间的关系以及优先级: 更多内容请参考网站说明. 附上简单自动布局的代码以及效果图: 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 // Do a

iOS自动布局

一开始用VFL语言都是这样实现自动布局的,一两个控件还好,多几个控件简直不能忍. _backgroundImageView = [[UIImageView alloc] init]; _backgroundImageView.backgroundColor = [UIColor clearColor]; _backgroundImageView.translatesAutoresizingMaskIntoConstraints = NO; [self addSubview:_background

(翻译)开始iOS 7中自动布局教程(二)

这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行翻译.前半部分已经转载至本博客,后半部分即本篇.学习IOS自动布局的朋友可以看看.自动布局很强大. 这篇教程绝对的最好的学习IOS自动布局的文章,没有之一 原文地址:Beginning Auto Layout Tutorial in iOS 7: Part 2 正文如下: 请注意: 团队成员Matthijs Hollemans (IOS学徒系列的作

最新iOS 6 in Xcode4.5新特性编程之一——自动布局(1)

随着iOS 6正式版和OS X 10.8.2正式版发布之后,苹果还向开发者发布了其应用开发工具Xcode最新版,在最新的Xcode 4.5版本中增加了: 自动布局对OS X和iOS的支持; 同时也增强了对MacBook Pro的Retina显示屏支持; 及对Objective-C的一些优化.下面来研讨一下自动布局对OS X和iOS的支持!! 通常来说,如果屏幕是固定尺寸,那么设计它的用户界面不会很难,但如果屏幕的frame需要能够变化,那么其中各个UI元素的位置以及尺寸也必须为了适应新的尺寸做相