Autolayout(自动布局)

VFL语言实现以下界面:

- (void)viewDidLoad

{

[super viewDidLoad];

//创建上面的view

UIView *topView = [[UIView alloc]init];

topView.backgroundColor = [UIColor redColor];

[self.view addSubview:topView];

topView.translatesAutoresizingMaskIntoConstraints = NO;

//创建下面的view

UIView *bottomView = [[UIView alloc]init];

bottomView.backgroundColor = [UIColor blueColor];

[self.view addSubview:bottomView];

bottomView.translatesAutoresizingMaskIntoConstraints = NO;

//利用VFL语言

//创建约束(垂直方向)

NSInteger gap = 20;

NSArray *verticalC = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-gap-[topView(==50)]-gap-[bottomView(==topView)]" options:NSLayoutFormatAlignAllRight metrics:@{@"gap":@(gap)} views:@{@"topView":topView,@"bottomView":bottomView}];

[self.view addConstraints:verticalC];

NSArray *herizonTopC = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-gap-[topView]-gap-|" options:NSLayoutFormatAlignAllRight metrics:@{@"gap":@(gap)} views:@{@"topView":topView}];

[self.view addConstraints:herizonTopC];

NSLayoutConstraint *contraintBottom = [NSLayoutConstraint constraintWithItem:bottomView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:topView attribute:NSLayoutAttributeWidth multiplier:0.5 constant:0];

[self.view addConstraint:contraintBottom];

}

时间: 2024-10-12 04:54:48

Autolayout(自动布局)的相关文章

[菜鸟成长记]iOS开发自学笔记04-AutoLayout自动布局

随着iphone6的问世,苹果又进一步加大了手机屏幕的尺寸,而且按照目前这种趋势来判断,未来应该还有可能会出现更大的屏幕的手机.如果没有AutoLayout那么目前iPhone有4种尺寸的屏幕,iPad也有两种尺寸.而一款应用程序想要兼容所有这些的不同尺寸的屏幕就必须要让程序做一些特殊处理,比如在程序里去获取屏幕尺寸再根据具体尺寸去建立不同的UI布局,显然每多一种屏幕就需要增加一种处理,这样很显然是繁琐和不经济的.而利用AutoLayout则可以使用约束对象的功能来实现一次布局在多种屏幕通用的目

iOS AutoLayout自动布局中级开发教程(1)-浅谈autolayout

何为autoLayout(自动布局,相对布局)? 按照我粗浅的理解,autolayout就是描述用来描述视图(控件)与视图之间的关系的一种工具; 当然,这种关系包括,子视图与子视图(如一个view上的两个button),子视图与父视图的关系(如一个Button距离他的父视图view右边界的距离);有大小关系(等高等宽),边界距离关系,有中心点(centerX 和 centerY)关系也有比例缩放(ratio)关系; autolayout的原理实际上是基于数学的一次方程求解,最终算出 约束值;按照

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

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

iOS AutoLayout自动布局中级开发教程(4)-label等文字自动适应大小,宽度

相比大家会经常遇到  label  或则  textfield等显示文字的  视图时,显示不全,或者无法自动 变化长度  ,自动改变字体的 设置: 今天给大家演示一下,如何 在autolayout让label 适应 不同的 宽度: 1.自动 改变字体: 首先设置好 label 的约束,包括宽高之后,默认来看 你的  label是不变了 ,但是 当遇到 文字较多时,就会出现显示不全的问题: 如图,我们设置好 Label的宽度和高度,和其他约束,固定住 label, 这是我们增加label的字数..

autoLayout自动布局

autoLayout 有两个核心概念: 参照 约束 当选择了 use auto layout 的选项之后 左侧就会多出两个东西 :top layout guide 和 bottom layout guide 代表上面和下面的范围,点击top layout guide 会发现状态栏下方会有一条线.添加约束的时候会相对于这条线. 删除约束的方法:选中一个约束,按delete键就可以 出现警告的时候可以点上面截图中按钮用update frames来修复. 当要进行约束的控件在top layout gu

iOS AutoLayout自动布局中级开发教程(5)-修改约束的值,延迟加载

如何修改autolayout 约束的值? <span style="font-family:SimSun;">目前我已知的方法有5种 1.修改frame(有时候可能会不起作用,但可以做动画) 2.修改约束的float值 3.使用VisualFormat 语言 4.使用 constraintWithItem,按倍率改变   如  2x+1=Y  5.移除约束(remove at runtime),添加新的约束</span> 前面的文章已经讲到如何使用storybo

iOS AutoLayout自动布局中级开发教程(2)-初识autolayout

通过storyboard,我们初识一下autolayout的表现形式: 看下图,使用storyboard创建的两个控件视图: 上图中的四个圆角框内的距离值,就是约束; 比如上图的第二个视图,他的 约束是:  距离 view左边,右边界的距离,这样就确定了 宽度和水平方向上的位置,还有距离上面(第一个)视图的距离,还有高,这样就确定了 视图的高度和y轴的位置;这样就可以在一个二维空间(屏幕)中唯一的确定这个视图的位置了; 但是,需要注意的,在添加距离上一个视图下边界的约束时,第一个视图的位置一定要

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记22 多MVC模式Demo中的AutoLayout自动布局

上一话我们详细介绍了多MVC模式以及Segue过渡的时候,这一话用一个新的Demo来诠释. 我们新建一个Psychologist的工程.把ViewController的名字改为PsychologistViewController.那么这个控制器是做什么用的呢?系统问你一个问题,然后你做出回答,系统会根据你的回答判断你是否开心,这样就能用上我们之前的Hppiness的项目. 在视图中加入一个label,然后调整字体为36,文字居中,label两边上边都与蓝线对齐. 每一话都会渗透一些自动布局的内容

iOS AutoLayout自动布局中级开发教程(3)-等宽等高等中心

前面讲到了一些关于边界约束的知识,但那些基础知识来解决一些实际问题还是会有点力不从心的;所以我们需要更高级的设置约束的办法,设置等高等宽等中心: 见下图: 图中有3个button按钮, 现在要求3个button等宽,等高 , 且 垂直中心在一条线上,这该如何设置? 按照前面的说法,约束其实是一次方程组的求解,那么 通过观察可以得之,如果我们设置好了button之间的左右边界约束,然后再让3个button等宽就可以; 那么就会有  3x  = 宽度; 所以 每一个Button的宽度就可以计算出来了