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. Qt5编译oracle驱动教程

    我们都知道oracle数据库的强大,并且好多企业或者教学用到数据库时都会推荐使用.但是Qt因为版权问题没有封装oracle数据库专用驱动,网上也有一大堆说法和教程,但是或多或少的都有问题.下面废话不多 ...

  2. Hashmap jdk7 死循环

    如果理解的有问题,欢迎大家指正. https://www.cnblogs.com/webglcn/p/10587708.html jdk7的hashmap 由数组和链表组成,存在几个问题: 当key的 ...

  3. JdbcTemplate使用小结

    org.springframework.jdbc.core.JdbcTemplate.query(String sql, Object[] args, RowMapper<StaffUnionV ...

  4. ADSL

    ADSL属于DSL技术的一种,全称Asymmetric Digital Subscriber Line( 非对称数字用户线路),亦可称作非对称数字用户环路.是一种新的数据传输方式. ADSL技术提供的 ...

  5. 网页图表Highcharts实践教程标之添加题副标题版权信息

    网页图表Highcharts实践教程标之添加题副标题版权信息 Highcharts辅助元素 辅助元素图表的非必要元素,如标题.版权信息.标签.载入动态.它们不和图表数据发生关联,只是额外说明一些基本信 ...

  6. shell 常用命令语句

    查找并删除 sudo fing / -name '*fcitx*' | xargs sudo rm -rf find . -type d -name ‘.svn’ | xargs rm -rf fin ...

  7. 设置Azure WebSite黑白名单

    Azure WebSite服务默认是不提供黑白名单,也就是说任何Internet用户都可以访问Azure WebSite,那么我们如何来给我们的网站设置黑白名单? 这里有一种方式,可以通过配置网站的配 ...

  8. 关于MongoDB时区问题

    由于MongoDb存储时间按照UTC时间存储的,其官方驱动MongoDB.driver存储时间的时候将本地时间转换为了utc时间,但它有个蛋疼的bug,读取的时候非常蛋疼的是返回的是utc使时间.一个 ...

  9. A CANBus Tiny Network without Transceiver ICs : STM32F4 Discovery

    Sometimes you have a CAN equipped processor on a low cost board but it has no CAN transceiver chips. ...

  10. Both - Either - Neither English Grammar

    http://www.grammar.cl/english/both-either-neither.htm Both, Either, Neither Summary Chart We use bot ...