AutoLayout是继AutoResizing之后的一种自己主动布局方法。攻克了AutoResizing无法处理控件间相互关系的问题。

AutoLayout在storyboard中通过底部工具条设置,底部工具条仅仅有勾选了AutoLayout同意才干显示。

从左到右三个button各自是 对齐、固定和尺寸修复。

【Align】

第一栏和第二栏都无法选择,由于它们都是相对属性,须要一个以上的控件。

第一栏各自是左、右、上、下对齐。后面的值是偏移量。

第二栏是相对还有一个控件水平、居中对齐或者基于某条线对齐。

第三栏能够直接选择,是相对于屏幕水平和垂直对齐。

【Pin】

上面的四个属性和AutoResizing一致。表示四个方向的固定距离。右面的小箭头代表的是相对于哪个View。须要注意的是,假设B想相对于A布局,让B的顶部距离A的底部20点,则在B中要选择相对于A。则A必须在B的上面才可选择,如图所看到的:在下拉框中选择正确的View。为了方便。应当给每一个View都起个名字。

以下的Equal Widths和Equal Heights都是须要两个或两个以上View,实现他们的宽、高一致所用。

注意在第一栏的最后有Constrain to margins是默认勾选的。iOS8有新特性。左右有一定边距,假设要相对于屏幕的边缘计算,应该取消勾选,一定要注意。

【Resolve Auto Layout Issues】

在AutoLayout约束后的结果与当前显示不一致时。点击Update Frames就可以更新视图。

【注意点】

1.使用了AutoLayout以后尽量不要设置frame,否则可能会出现奇怪的问题。

2.AutoLayout出现红色为错误,说明缺少约束条件;黄色为警告,应当Update Frames更新视图。

【更改约束实现比例关系】

有时候会有一种需求,A相对屏幕居中。B和A右对齐,而且B的宽度是A的一半。重点是最后这个比例关系。

主要有两种实现方式。介绍之前,先介绍更改约束的方法,点击随意一条约束线,看右側的界面:

这里反映的是计算关系,公式为First = (Second + Constant) * Multiplier。如果这个是宽度关系。而且blueView的宽度已经固定。则依据上面的公式。系统会自己主动解出redView的宽度。反之亦然。

★实现方法一:利用宽度关系

为A、B加入Equal Widths约束,选中约束线。更改Multiplier,使得ViewB.width = (ViewA.width + 0) * 0.5,或者满足ViewA.width = (ViewB.width + 0) * 2。

★实现方法二:利用居中对齐

由于A相对屏幕居中,因此仅仅要让B的左側和屏幕中线对齐就可以。

实现方法为SuperView.Center X = (ViewB.Leading + 0) * 1。由于父视图的中心X不变,因此仅仅能让ViewB的左側变化,从而实现了与中线对齐。

【控制器View伸缩变化时的处理】

假设控制器View伸缩,而子控件相对屏幕的位置又不能变,能够选择依照屏幕的中线进行布局。

(八十七)AutoLayout的简单介绍与实例的更多相关文章

  1. Linux守护进程简单介绍和实例具体解释

    Linux守护进程简单介绍和实例具体解释 简单介绍 守护进程(Daemon)是执行在后台的一种特殊进程.它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件.守护进程是一种非常实用的进程. ...

  2. Tstrings类简单介绍及实例

    用TStrings保存文件;var  S: TStrings;begin  S := TStringList.Create();  { ... }  S.SaveToFile('config.txt' ...

  3. Dubbo简单介绍及实例

    1.概念 Dubbo是一个分布式服务框架,以及阿里巴巴内部的SOA服务化治理方案的核心框架.其功能主要包含:高性能NIO通讯及多协议集成.服务动态寻址与路由.软负载均衡与容错,依赖分析与降级等. 说通 ...

  4. Solr之NamedList 简单介绍与实例解析

    大家都知道,Solr是一个基于Lucene高可配置的搜索服务器,大部分参数值以及相关优化等等都可以在solrconfig.xml中配置,那么就需要一个能够很快的进行解析和读取配置文件内容的数据结构,为 ...

  5. salesforce 零基础学习(四十七) 数据加密简单介绍

    对于一个项目来说,除了稳定性以及健壮性以外,还需要有较好的安全性,此篇博客简单描述salesforce中关于安全性的一点小知识,特别感谢公司中的nate大神和鹏哥让我学到了新得知识. 项目简单背景: ...

  6. Entity Framework 的简单介绍与实例

    1.下载与引用 a) 首先需要下载一个oracle clinent 12c 发行版(我这边下载的是发行版)并进行安装,下载内容如下图 B) 创建一个项目,通过Nuget引用  添加ODP.NET    ...

  7. ios基础篇(八)——UITabBarController的简单介绍

    一.简介 UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就 ...

  8. 实例级别和类级别的static、构造函数、字段属性的简单介绍

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 实例级别 ...

  9. Deep learning:三十八(Stacked CNN简单介绍)

    http://www.cnblogs.com/tornadomeet/archive/2013/05/05/3061457.html 前言: 本节主要是来简单介绍下stacked CNN(深度卷积网络 ...

随机推荐

  1. 安装redis出现的问题

    这个问题是我在腾讯云上安装redis时出现的错误, 1.在执行make命令时出现的错误 解决方案,没有安装gcc 什么是gcc: GCC是一个用于linux系统下编程的编译器是一个用于编程开发的自由编 ...

  2. View初探

    View初探 学习自 <Android开发艺术探索> View漫谈 Activity构成了我们的界面但是知识一个空壳子,Activity与View相结合才构成了我们丰富多彩的界面,并且为了 ...

  3. NOIP练习赛题目4

    肥得更高 难度级别:C: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 自2009年以来,A.B站的历史就已经步入了农业变革的黎明期.在两站的 ...

  4. java 实现生产者-消费者模式

    生产和消费者模式有很多种,现在介绍几种常见的方式 wait/notify实现生产和消费者模式 1.使用wait/notify实现生产和消费者模式: public class Depot { // 实际 ...

  5. hdu 1042 N! 高精度运算

    N!                                                                              Time Limit: 10000/50 ...

  6. Revit手工创建族

    手工创建族 1.画两个参考平面. 图3001 2.点击族类型,添加参数. 图3002,3003 3.添加类型,为类型赋值. 3004 4.创建拉伸截面,完成后,可以三维查看. 3005 5.创建对齐, ...

  7. [Winform]CefSharp ——js调用c#方法

    摘要 有时我们在winform中嵌入浏览器,需要在页面上读取电脑上的一些信息,这个时候就需要用到CefSharp的RegisterJsObject进行注册方法然后供js进行调用了. 一个例子 我们在w ...

  8. 用Qemu搭建x86学习环境

    作者信息 作者:彭东林 邮箱:pengdonglin137@163.com QQ:405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linux内核 ...

  9. 初识GRUNT

    什么是GRUNT? 基于任务的命令行工具.能做的事包括: ● 验证html,css, javascript● 压缩css, javascript● 编译CoffeeScript, TypeScript ...

  10. Delphi数学运算当中四舍五入的问题

    在最近版本的Delphi Pascal 编译器中,Round 函数是以 CPU 的 FPU (浮点部件) 处理器为基础的.这种处理器采用了所谓的 "银行家舍入法",即对中间值 (如 ...