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. selenium处理Ajax浮动框方法

    package com.allin.pc;import java.util.List;import org.openqa.selenium.WebElement;import org.openqa.s ...

  2. hasOwnProperty

    var Person = function(){ this.name = "nike"; this.age = "20" } var person = new ...

  3. 基于.NET的微软ORM框架视频教程(Entity Framework技术)

    基于.NET的微软ORM框架视频教程(Entity Framework技术) 第一讲  ORM映射 第二讲 初识EntifyFramework框架 第三讲 LINQ表达式查询 第四讲 LINQ方法查询 ...

  4. 【Nginx】配置Nginx的负载均衡

    参考的优秀文章 tomcat配置文件server.xml详解 AJP协议总结与分析 Using nginx as HTTP load balancer 在本机运行2个Tomcat 现需要运行两个Tom ...

  5. Java类实例化时候的加载顺序

    面试试题中经常考到此问题,现在做进一步的总结: public class Student { public Student(String name){ System.out.println(name) ...

  6. C++ string到底是什么

    C++ string到底是什么? 要回答这个问题,先要了解什么是basic_string.看一下basic_string的声明: template < class charT, //定义字符串中 ...

  7. C#报修系统Ⅱ

    用户需求: 1.用户可以注册,可以登录. 2.需要一个报修界面,当点击“报修”按钮时,软件会把用户报修的信息保存起来,更新报修次数,同时会清空相应的文本框,软件还要要检查所有文本框是否为空,空的话给出 ...

  8. Ubuntu 16.04 + Caffe

    主要参考: https://github.com/BVLC/caffe/wiki/Ubuntu-16.04-or-15.10-Installation-Guide http://caffe.berke ...

  9. 从ASP了解Http Buffer

    he Buffer property specifies whether to buffer the output or not. When the output is buffered, the s ...

  10. Android 利用SurfaceView进行图形绘制

    SurfaceView使用介绍 SurfaceView是View的一个特殊子类,它的目的是另外提供一个线程进行绘制操作. 要使用SurfaceView进行绘制,步骤如下: 1.用SurfaceView ...