使用代码创建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 的尺寸,所以可以实现“假适配”。

最新文章

  1. [MEF插件式开发] 一个简单的例子
  2. Swift 学习中的一点体会,不断更新中。。。
  3. Python 爬虫3——第一个爬虫脚本的创建
  4. 基于Linux平台的libpcap源码分析和优化
  5. [网络] 用 OpenVPN 实现站对站 VPN 服务
  6. VBA中的FileSystemObject对象(FSO)和文本流
  7. jQuery动态加载css文件实现方法
  8. oracle 生成随机数【待整理】
  9. 安装mysql之后,存入中文出现乱码 02
  10. javascript笔记05:函数表达式和函数语句的区别
  11. Java 并发专题 : Semaphore 实现 互斥 与 连接池
  12. X-Scan使用教程
  13. 自定义七天签到View
  14. thinkphp3.2升级至thinkphp5.0.24
  15. 本地复现Flash 0day漏洞(CVE-2018-4878)
  16. oracle坏块问题的处理
  17. 多线程(Thread,Runnable)
  18. 使用PhotoShop将视频转为gif格式
  19. Js_网站右下角悬浮视窗可关闭广告
  20. OneZero第三次站立会议(2016.3.23)

热门文章

  1. 清除行内元素之间HTML空白的几种解决方案
  2. php函数描述及例子
  3. 字符串&数组的相互转换
  4. iPads和iPhones的Media Queries
  5. ubuntu安装chrome
  6. Guilty Gear Xrd 资源Rip(1)
  7. unity 环境增强
  8. RT-Thread创建静态、动态线程
  9. PHP学习(四)---PHP与数据库MySql
  10. 搭建一个Flv视频播放服务器