使用代码创建AutoLayout约束
使用代码创建AutoLayout约束
1.代码创建约束的步骤

2.代码创建约束的常用方法

3.代码创建约束的原则

4.禁用Autoresizing的原因

5. 设置相对状态栏的约束,使用self.topLayoutGuide

6.通过AutoLayout实现动画
拿到高度约束(self.viewHconstraint)--修改constant值(self.viewHconstraint += 100;)--在动画中[view layoutIfNeeded]。

7.关于自动布局的相关知识总结:
7.1 Autoresizing和AutoLayout是互斥的,每次只能使用其中一个。Xib/Storyboard默认使用AutoLayout,禁用了Autoresizing。但是使用代码给UI控件添加约束时,Autoresizing默认是打开的,需通过view.translatesAutoresizingMaskIntoConstraints = NO;关闭Autoresizing,才能在代码中使用AutoLayout。
7.2 Autoresizing只能设置某控件和它父控件之间的约束关系,AutoLayout可设置父子控件/兄弟控件等所有的约束。以后的项目都只使用AutoLayout技术。
7.3 Autoresizing外面框框代表父控件,里面框框代表当前选中的控件。另外还有6根线,外面的4根线如果选中,表示子控件与父控件上下左右的间距无论在任何屏幕下都保持现在的值。里面的2根线如果被选中,说明子控件的尺寸(宽高)会随着父控件尺寸变化而变化。
7.4 SizeClass是ios8以后出现的新技术,若兼容以前版本则不能用。SizeClass将屏幕分为9种类型,可设置在不同屏幕下是否install某UI控件、在不同屏幕下给同一控件设置不同的约束,给同一图片框设置不同的图片,给同一控件设置在不同的字体。
7.5 使用AutoLayout添加约束时,在xib中选中一条约束,点击属性查看器,发现有个priority(优先级,取值为1-1000,常用required1000,high750,lower50三种),表示在设置同一尺寸时,如果多条约束发生冲突,则以优先级高的为准。
8. UIButton,UISwitch,UITextField,UILabel,UIImageView等控件,在使用AutoLayout布局时只需设置x,y值,不设置宽高都可以,因为这些控件都有默认的宽和高。对于UIButton,它的宽高会根据里面的imageView和textLabel自动调整,如果给UIButton设定了很长的宽度,但是它里面的textLabel的宽度仍会根据文字来自动调整。

9. iOS程序运行时屏幕的真实大小由启动图片决定(Launch.xib运行起来后会截图保存为启动图),如果最大尺寸的启动图设置为4inch(320*568)的,那么就算在4.7inch(375*667)和5.5inch(414*736)的屏幕上运行时,依旧将屏幕划分成320*568等分,这样顶多会导致图片变大或者模糊。
如果图片大小本身并没有按照 iPhone6 和 6p 来做(比6和6p 的尺寸要小), 解决方法是:把启动图片改成使用 LaunchImage的方式, 这样的话在6和6p 下实际尺寸也是4inch 的尺寸,所以可以实现“假适配”。
使用代码创建AutoLayout约束的更多相关文章
- 利用代码添加autolayout约束
1.概述 通常我们通过storyboard能够完成的,代码也能够完成,所以这里介绍下代码实现约束的添加,通常我们不这么干(在不使用第三方框架的情况下,使用系统自带的类添加约束特别繁琐),所以这里仅仅简 ...
- Sql Server——运用代码创建数据库及约束
在没有学习运用代码创建数据库.表和约束之前,我们只能用鼠标点击操作,这样看起来就不那么直观(高大上)了. 在写代码前要知道在哪里写和怎么运行: 点击新建查询,然后中间的白色空白地方就是写代码的地方了. ...
- 【原】iOS学习之苹果原生代码实现Autolayout和VFL语言
1.添加约束的规则 在创建约束之后,需要将其添加到作用的view上 在添加时要注意目标view需要遵循以下规则: 1)对于 两个同层级view之间 的约束关系,添加到它们的父view上 2)对于 两个 ...
- 代码实现Autolayout
代码实现Autolayout的步骤 利用NSLayoutConstraint类创建具体的约束对象 添加约束对象到相应的view上 - (void)addConstraint:(NSLayoutCons ...
- 史上比较用心的纯代码实现 AutoLayout
入职有两三个月了吧,都是使用 Objective-C 纯代码(虽然有时候偷偷参杂一些 Swift 开源库)来编写公司APP,写布局的时候几乎都是要么在初始化的时候用 initWithFrame,要么就 ...
- 如何优雅的代码编写 AutoLayout
概述 使用 Objective-C 纯代码编写 AutoLayout,看 AutoLayout 的字面理解就是自动布局,听起来好像蛮屌的样子.说白了就是适配:适应.兼容各种不同的情况,包括不同版本的操 ...
- Auto Layout之创建布局约束
上篇文章给大家介绍了AutoLayout 的由来及OC中关于AutoLayout 的类.这篇文章将向大家介绍,在iOS 编程中怎样使用Auto Layout 构建布局约束. 创建布局约束 创建布局约束 ...
- iOS代码添加视图约束
项目要做这样一个效果的启动页. 考虑到版本号是会不断变更的,因此采用动画效果启动页,让版本号动态加载iOS启动页动画效果 - 简书 考虑到屏幕适配问题,因此采用代码对视图添加约束.在添加约束的过程中遇 ...
- 代码创建数据库_表--SqlServer数据库
/*1.创建数据库的时候需要设置的基本属性: 数据库名称 逻辑名称 初始大小 文件增长 路径*/ --语法: -- create database 数据库名称 -- on [primary]--创建数 ...
随机推荐
- 一种少见的跨目录写webshell方法
http://hi.baidu.com/kwthqquszlbhkyd/item/480716204cfa33c3a5275afa
- php 过时的sql操作库(学习使用)
学习地址:http://www.imooc.com/video/2459 <?php /** * 连接数据库 * @return resource */ function connect(){ ...
- [办公自动化]如何对Excel表格顶部设计
领导有一个excel要完成如下功能:顶部要包含企业LOGO,还要包含设计图号.版次等表格,还要包含类似“第 页 of 页” 总体思路: 1.利用顶端标题行完成除了页码以外的所有事情:(当然也可以利 ...
- Apache Storm 衍生项目之1 -- storm-yarn
欢迎转载,转载请注明出处,徽沪一郎. 概要 storm是一个近似于实时的计算框架,甩开hadoop上的原生mapreduce计算框架不只一条街.如果能将storm引入到hadoop中,对存储于hdfs ...
- adb & adb shell 相关命令
在Mac上配置adb命令 在Mac OS中使用adb命令时,应进行变量配置,步骤如下: 一.终端中输入 cd ~ 二.输入touch .bash_profile 回车 touch:如果没有,则创建文件 ...
- A20VGA和lvds显示的切换-
./fex2bin sys_config_lvds.fex /boot/script.bin sys_config_lvds.fex的作用:配置各种外设,端口,I/O针脚信息的文件 生成 script ...
- The world beyond batch: Streaming 101
https://www.oreilly.com/ideas/the-world-beyond-batch-streaming-101 https://www.oreilly.com/ideas/the ...
- MySql解决插入中文乱码问题
在dos中登陆mysql 后输入: // 查看数据使用的所有编码show variables like 'character%';// 修改客户端的编码 为 gbkset character_set_ ...
- php数据缓存
用php进行微信开发时,碰到access_token长久保存的问题,以前都是用框架里的Cache直接set.get一下就完了.现在没框架可用了,只好自己动手写一个cache暂时用. 这个Cache类用 ...
- WSDL Style和use的组合方式说明
原文地址:http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/#listing9 use属性可以为literal,encoded ...