第一章 ------ AutoYout介绍
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介绍的更多相关文章
- 《Getting Started with WebRTC》第一章 WebRTC介绍
<Getting Started with WebRTC>第一章 WebRTC介绍 本章是对WebRTC做概念性的介绍. 阅读完本章后.你将对下面方面有一个清晰的理解: . 什么 ...
- Mariadb第一章:介绍及安装--小白博客
mariadb(第一章) 数据库介绍 1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以 ...
- Java 螺纹第三版 第一章Thread介绍、 第二章Thread创建和管理学习笔记
第一章 Thread导论 为何要用Thread ? 非堵塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Ta ...
- 【Bochs 官方手册翻译】 第一章 Bochs介绍
Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统.它包含了 Intel x86 CPU 仿真.常见设备仿真.以及定制 BIOS.Bochs 可以虚拟多种不同类型的 x86 CPU ...
- LSJ_NHibernate第一章 NHibernate介绍
前言: 说起NHibernate网上资料真不少,但用的人却并不多,说起java的SSH框架大家可能就知道了,这里的H指的就是Hibernate,一款好用的ORM框架,在.net重写了这款好用的框架,名 ...
- 《Spring敲门砖之基础教程第一季》 第一章 概要介绍
百度百科say: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建.简单来说,Spring是一个分层的JavaSE/EEful ...
- 第一章 python介绍、变量、数据类型、流程控制语句等
一.python介绍 1.python的诞生 python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(龟叔)于1989年发明,第一个公开发行版发行于1991年. ...
- MySQL高级第一章——架构介绍
一.简介 是一个经典的RDBMS,目前归属于Oracle 高级MySQL包含的内容: MySQL内核 SQL优化工程师 MySQL服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容 ...
- CS231n 2016 通关 第一章-内容介绍
第一节视频的主要内容: Fei-Fei Li 女神对Computer Vision的整体介绍.包括了发展历史中的重要事件,其中最为重要的是1959年测试猫视觉神经的实验. In 1959 Harvar ...
随机推荐
- Java虚拟机学习(5):类加载器(ClassLoader
类加载器 类加载器(ClassLoader)用来加载 class字节码到 Java 虚拟机中.一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源文件在经过 Javac之后就被转换成 ...
- Orcale与jfinal的添加时间问题
时间只能不能使用一般的方法进行添加,必须转换,比如添加当前时间,如上图所示
- noi 9267 核电站
题目链接:http://noi.openjudge.cn/ch0206/9267/ 描述 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可 ...
- vs2015手动安装xamarin
1.安装jdk Download the Java JDK v1.7.0 installer to any directory on your disk, double-click the downl ...
- 我的android学习经历38
anddroid studio的内存修改 昨天有位朋友问到了下面的一个问题 这个判断为android studio的分配的内存不够用. 据我的了解造成这个的原因主要有以下几个方面: 1.电脑的内存本来 ...
- 标准DSO设置
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- SQL循环索引
),dates datetime) insert @tbl(order_id,dates) select 'A','2014-1-1' union select 'A','2014-2-1' unio ...
- Oracle_双机备份
1.dataguard http://jingyan.baidu.com/article/f96699bb956ef2894e3c1b39.html http://blog.itpub.net/262 ...
- iOS开发 Masonry的简单使用
首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout 从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...
- 支持向量机(SVM)算法