1.使用自动布局的好处:

    (1)让两个视图进行尺寸匹配,使两个视图始终保持相同的宽度

    (2)无论父视图如何改变,视图都可以相对于父视图居中

    (3)拜放一行视图时将几个视图的底部对齐

    (4)将两个视图偏移一定的距离

    (5)将两个视图的底部绑定,当移动时两个视图都会同时移动

    (6)防止图像视图在按自然大小看不到完整内容时收缩成一个点(即不压缩图像也不剪切视图的内容)

    (7)显示按钮时旁边不能有太多的补白

2.内容驱动的布局

    (1)就是根据视图的内容进行布局

    (2)当视图内容(如大小、位置形状)发生改变时,布局也要随之进行改变

3.优先级规则

    (1)设计时,不仅仅要指定每个视图的布局质量,而且要排除它们的优先级顺序,当规则发生冲突的时候可以根据优先级排序选择最重要的布局质量来保护。

    (2)例如:按钮的最小窗口尺寸设置高于其他尺寸设置的请求,,,这样可以强制性的设定一个自然的最小窗口尺寸,防止窗口进一步缩小

4.约束

    (1)使用约束的类是NSLouyout

    (2)可以指定视图属性的关系,如高、宽、位置和中心点

5.充分性

    (1)布局必须要遵守四个规则,位置和长宽(x,y,长,宽)

6.约束属性

    (1)属性:在约束系统中为名词,用来 描述视图对齐矩形内的位置

    (2)关系:是动词,指出如何将不同的属性进行相互比较

    (3)当设置国际化应用程序时,尽量多使用前和后的术语,不用左和右,因为有一些语言是从右到左来对待的

7.关于那些丢失的图像

    (1)欠约束和规则不完整都会导致视图丢失

    (2)欠约束的视图没有为auto layout提供构建视图所需的足够信息,因此它通常默认大小为0

8.追踪丢失的视图

    (1)方法是在预期它们出现之后检查阿门的几何形状,例如使用viewdidappear:awakefromnib:,可以添加nsassert来描述它们的预期大小和位置。

    (2)可以调用hasAmbignousLayout来测试视图的约束是否充分。

9.内在内容大小

    (1)视图内容的大小通过每个视图的intrinsicContentSize属性来表达

NSLog(@"%@ : %@",[button titleForState:UIControlStateNormal],NSStringFromCGSize(button.intrinsicContentSize));

    (2)当改变了视图的内在内容时,需要调用invalidateIntrinsicContentSize方法,让autolayout知道在下次布局时重新计算

10.压缩阻力和内容吸附

    (1)压缩阻力高的视图能够抵抗收缩,不允许内容被剪切,阻力高内容可以被保留,阻力低的视图大小发生改变时以内容就会被压缩剪切,默认是750

    (2)内容吸附描述了视图将框架于其内容的自然大小匹配的意愿,就是内容到视图框架边缘的距离,优先级高的距离小,优先级低的距离大,空白多,默认是250

11.声明对齐矩形

    (1)可使用alignmntRectForFrame,frameForAlignmentRect,baselineOffsetFromBottom,alignmentRectInsets来表示对齐几何图的方式

    (2)需要注意的是:alignmntRectForFrame和frameForAlignmentRect必须是在数学上是互逆的,baseline是指内容视图底部对齐的水平线   

第一章 ------ AutoYout介绍的更多相关文章

  1. 《Getting Started with WebRTC》第一章 WebRTC介绍

    <Getting Started with WebRTC>第一章 WebRTC介绍 ​ 本章是对WebRTC做概念性的介绍. 阅读完本章后.你将对下面方面有一个清晰的理解:   .  什么 ...

  2. Mariadb第一章:介绍及安装--小白博客

    mariadb(第一章)   数据库介绍 1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以 ...

  3. Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记

    第一章 Thread导论 为何要用Thread ? 非堵塞I/O      I/O多路技术      轮询(polling)      信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...

  4. 【Bochs 官方手册翻译】 第一章 Bochs介绍

    Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统.它包含了 Intel x86 CPU 仿真.常见设备仿真.以及定制 BIOS.Bochs 可以虚拟多种不同类型的 x86 CPU ...

  5. LSJ_NHibernate第一章 NHibernate介绍

    前言: 说起NHibernate网上资料真不少,但用的人却并不多,说起java的SSH框架大家可能就知道了,这里的H指的就是Hibernate,一款好用的ORM框架,在.net重写了这款好用的框架,名 ...

  6. 《Spring敲门砖之基础教程第一季》 第一章 概要介绍

    百度百科say: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EEful ...

  7. 第一章 python介绍、变量、数据类型、流程控制语句等

    一.python介绍 1.python的诞生 python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(龟叔)于1989年发明,第一个公开发行版发行于1991年. ...

  8. MySQL高级第一章——架构介绍

    一.简介 是一个经典的RDBMS,目前归属于Oracle 高级MySQL包含的内容: MySQL内核 SQL优化工程师 MySQL服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容 ...

  9. CS231n 2016 通关 第一章-内容介绍

    第一节视频的主要内容: Fei-Fei Li 女神对Computer Vision的整体介绍.包括了发展历史中的重要事件,其中最为重要的是1959年测试猫视觉神经的实验. In 1959 Harvar ...

随机推荐

  1. [转]Win7 64位搭建本地SVN服务器 Apache+Subversion

    转载地址:http://blog.sina.com.cn/s/blog_4f072a7001015j5z.html 一.工具下载 01.SVN 服务器Subversion:Setup-Subversi ...

  2. js遍历数组的错误方法

    for (var index in myArray) { // don't actually do this console.log(myArray[index]); } 缺点: 数组的索引值inde ...

  3. ShadowGun Demo学习(非技术向)

    主要针对拿来主义,并对一些使用范围广的shader进行研究.虽然是4,5年前的demo,但还是有学习价值的 1.GodRays MADFINGER/Transparent/GodRays 传统的上帝之 ...

  4. Excle隐藏及展开列

    当excle文档类目比较多的时候我们希望看第一列和某一列的对应关系可以选择隐藏中间列. 选中要隐藏的列,然后右键-->隐藏即可 需要展开的时候,选中:被隐藏列的前一列和后一列,然后当鼠标在列头( ...

  5. C语言中system()函数的用法总结(转)

    system()函数功能强大,很多人用却对它的原理知之甚少先看linux版system函数的源码: #include <sys/types.h> #include <sys/wait ...

  6. 使用java自带线程池管理器demo

    1.程序入口:DabianTest package com.lbh.myThreadPool.present; import java.util.concurrent.ExecutorService; ...

  7. 如何让popWindow显示在view上方

    看了bilibili的客户端搜索按钮,很喜欢大爱!自己也想做个类似的(相似度 10% 哈哈) popWin的出现退出动画也可以自己设定,用过其方法setAnimationStyle(R.style.x ...

  8. linux笔记:shell基础-环境变量配置文件

    source命令(重新读入配置文件,不用重启就直接生效): 环境变量配置文件: linux中的环境变量配置文件(~代表当前用户的家目录): 配置文件读取顺序: /etc/profile 文件的作用:

  9. 【转】Mysql中varchar存放中文与英文所占字节异同

    本文转自Ruby china, 原文地址:https://ruby-china.org/topics/24920 一.关于UTF-8 UTF-8 Unicode Transformation Form ...

  10. 读javascript高级程序设计14-错误处理与调试

    一  错误类型 ECMA规定了常见的7种错误类型: Error: 基类型.其他常见的错误类型都继承自该类型,一般供开发人员抛出自定义错误. EvalError:该类型会在eval()函数使用异常时被抛 ...