自动布局(AutoLayout)使用

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

/*2.创建控件的X轴方向的约束 */
NSLayoutConstraint *rightButtonXConstraint = [NSLayoutConstraint constraintWithItem:self.rightButton
                                                                          attribute:NSLayoutAttributeCenterX
                                                                          relatedBy:NSLayoutRelationGreaterThanOrEqual
                                                                             toItem:superview
                                                                          attribute:NSLayoutAttributeCenterX
                                                                         multiplier:1.0
                                                                           constant:-100.0f];
/*3. 创建控件的Y轴方向的约束 */
NSLayoutConstraint *centerYMyConstraint = [NSLayoutConstraint constraintWithItem:self.rightButton
                                                                       attribute:NSLayoutAttributeCenterY
                                                                       relatedBy:NSLayoutRelationGreaterThanOrEqual
                                                                          toItem:superview
                                                                       attribute:NSLayoutAttributeCenterY
                                                                      multiplier:1.0f
                                                                        constant:0.0f];
// 将约束条件添加到父View
[superview addConstraints:@[centerYMyConstraint, rightButtonXConstraint]];

上面的代码实现了控制 rightButton以默认大小,显示在superView的中心位置,水平方向偏左100.0。

这里主要用到了NSLayoutConstraint的:

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:偏移量

***注意***

self.rightButton.translatesAutoresizingMaskIntoConstraints = NO;

这句要加上,不然约束无效。

参考文章

IOS自动布局

コードでAutolayout

时间: 2024-11-19 13:39:32

自动布局(AutoLayout)使用的相关文章

Xcode6中自动布局autolayout和sizeclass的使用

一.关于自动布局(Autolayout) 在Xcode中,自动布局看似是一个很复杂的系统,在真正使用它之前,我也是这么认为的,不过事实并非如此. 我们知道,一款iOS应用,其主要UI组件是由一个个相对独立的可视单元构成,这些可视单元有的主要负责向用户输出有用的信息,有些则负责信息的输 入(交互),交互的过程中往往还伴随有动画的效果,已达到整个信息传递的连贯性以及用户体验的细腻感.可视单元,在实际开发中主要是view. button等,那么这些可视单元的关系由两个基本的关系构成:兄弟关系和父子关系

自动布局AutoLayout

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

自动布局autoLayout解决不同屏幕

这篇不是autolayout教程,只是autolayout动员文章和经验之谈,在本文第五节友情链接和推荐中,我将附上足够大家熟练使用autolayout的教程.这篇文章两个月前就想写下来,但因为一直工作较多,没有时间来完成.今天终于狠下心,丢下代码不写,来完成他吧! 一.别和我提Autolayout,我想死!! 从iOS6/xcode4开始,苹果开始提供了autolayout——一种对不同屏幕尺寸有更好兼容的自动布局机制,但我相信大多数人在刚接触autolayout时,一定和我一样,几乎快被其折

iOS学习之自动布局-Autolayout

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

在storyboard/xib文件中实现自动布局 autolayout

1.注意事项 autolayout和frame属性是有冲突的,所以如果准备使用autolayout,就不要再代码中对控件的frame属性进行操作. 设置autolayout必须设置完全,必须包括位置信息和尺寸信息.也就是说必须有宽高和坐标位置,缺一不可. 回到顶部 2.简单示例 两个view(redView和blueView),等高等宽,redView距离左边和下边间距都是20,距离blueView间距也是20.blueView距离右边和下边都是20. 回到顶部 2.1.autolayout的相

自动布局autolayout使用总结(源码含swift版本)

一.概述 使用autolayout有一段时间了,Objective-C和swift下.iOS7和iOS8下都在用, 一路遇到了不少的坑,随遇随填,到今天也算是积累了不少经验了,这里总结一下, 通过自己新建的一个Doubi Demo来分享给大家.Doubi Demo我已上传到github上 去了(地址是:https://github.com/lihux/iLihuxAutoLayout),以后每篇文章的demo都 将放在github上,供大家参考.源码的workspace中有两个工程,分别使用OC

自动布局(autoLayout)演练2

那这一篇的练手的任务是: 如上图:红色记号代表间距都是20,两图片的高度都为40,最重要的一点:两图片的右边距(Trailing)对齐 1.添加两个uiview,我这是用的是storyboard拖的,两个uiview,设置好背景颜色 2.autoLayout与autosizing是重复的,不能混用,因此在xcode6.1以上要用autoLayout时,要在把zutosizing的勾去掉,要用autoLayout,把勾打上,因为这张图是xcode5.1,所以与xcode6不同 3.首先弄蓝色视图:

ios使用自动布局autolayout

在ios开发中经常用到自动布局,比如屏幕旋转来,界面就要从新摆放,不然就会显示不全. 自动布局一定要在storyboard界面里面设置,不能用纯代码的形式来写 要使用自动布局,首先要确保interface builder document里面的Use Auto Layout 和Use Size Classes 选项已经勾选??上了 图1:打开auto layout 这样在storyboard的右下角就会出现几个图形按钮:   分别是:stack.align.pin.和resolve auto l

IOS手动添加的View 在代码中使用(自动布局)autoLayout

- (void)viewDidLoad { [super viewDidLoad]; UIButton *btnTest = [UIButton buttonWithType:UIButtonTypeCustom];//不需要去刻意指定x,y的坐标,可以用CGRectZero btnTest.backgroundColor = [UIColor redColor]; btnTest.layer.borderColor = [UIColor yellowColor].CGColor; btnTes