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

转载于:https://www.cnblogs.com/stevenwuzheng/p/5486730.html

使用代码创建AutoLayout约束相关推荐

  1. 史上比较用心的纯代码实现 AutoLayout

    入职有两三个月了吧,都是使用 Objective-C 纯代码(虽然有时候偷偷参杂一些 Swift 开源库)来编写公司APP,写布局的时候几乎都是要么在初始化的时候用 initWithFrame,要么就 ...

  2. 使用Xcode 6中的AutoLayout约束模拟方面适合行为

    本文翻译自:Emulating aspect-fit behaviour using AutoLayout constraints in Xcode 6 I want to use AutoLayou ...

  3. 使用ArchUnit验证代码和体系结构约束

    介绍 ArchUnit是一个用于根据一组自定义代码和体系结构约束检查Java代码的库. 这些约束可以在单元测试中的流畅Java API中定义. ArchUnit可用于验证类或层之间的依赖关系,检查循环 ...

  4. sql行数少于10_如何用少于100行的代码创建生成艺术

    sql行数少于10 by Eric Davidson 埃里克·戴维森(Eric Davidson) 如何用少于100行的代码创建生成艺术 (How to Create Generative Art I ...

  5. 代码创建数据库_表--SqlServer数据库

    /*1.创建数据库的时候需要设置的基本属性:数据库名称 逻辑名称 初始大小 文件增长 路径*/--语法:-- create database 数据库名称-- on [primary]--创建数据文件 ...

  6. AndroidStudio git 提交代码,创建分支,合并分支,回滚版本,拉取代码

    主要有: 提交代码,创建分支,合并分支,回滚版本,拉去代码 1 首先电脑中下载git 2 新建的项目把.git 仓库放到项目总中as 工具的右下角 会显示 Git:master 点击有一个弹框如下 然 ...

  7. FPGA之道(64)代码中的约束信息(一)保持约束

    文章目录 前言 HDL中的常用约束示例 保持约束 keep keep_hierarchy 前言 这一节的内容很有意思也很有用,对于我们主动地操作我们的Verilog代码很有帮助.众所周知,通过设置工具 ...

  8. SQL2K数据库开发十一之表操作创建UNIQUE约束

    1.在数据库关系图中右击表Products,然后从弹出的菜单中选择"属性"命令.或者点击工具栏上的属性图标.         2.或者展开sample数据库,在表Products上 ...

  9. akka actor java_Akka:使用非默认构造函数在Scala中定义一个actor并从Java代码创建它 - java...

    Akka Scala演员必须扩展akka.actor.Actor Akka Java actor必须扩展akka.actor.UntypedActor 因此,在使用非默认构造函数定义Scala act ...

最新文章

  1. zoj2760(最大流)
  2. 超多树形结构的JavaScript菜单实例
  3. APL开发日志 -- 2013-03-02
  4. 你该知道什么值得买 该有多活跃(核心数据)
  5. BMP位图之8位位图(三)
  6. php常用函数、算法,PHP常用函数和常量
  7. layer文件ajax上传,layer弹出层数据传输到content里面
  8. [ES6系列-01]Class:面向对象的“新仇旧恨”
  9. 江西版七年级计算机教案,江西科技版《信息技术》七年级信息技术下册教案.doc...
  10. fb静态区域_西门子 PLC FC和FB用法讲解
  11. java设置http超时时间_Java设置Http请求超时时间
  12. Python游戏编程(一)“猜数字”游戏
  13. java 反编译 知识学习汇总 java网络爬取网页代码
  14. 【有限元分析】电力塔架ansys有限元模型
  15. 若依(RuoYi-Vue)+Flowable工作流前后端整合教程
  16. 柳廷顯 任汝所用 月亭
  17. lambda no instance(s) of type variable(s) T exist so that void conforms to R
  18. 小有成就感了 教会父母玩平板电脑
  19. Git_GitHub——基本操作、创建远程库、远程库操作、团队协作、SSH免密登录
  20. 安装画图工具kolourpaint

热门文章

  1. html5图片自动翻转特效,CSS3带动态阴影效果的3D图片翻转特效
  2. 计算机网络实验步骤华北电力大学,华北电力大学网络管理实验
  3. datagrid出现相同两组数据_数据分析之统计学
  4. 探测器反向偏压_科学网—《涨知识啦22》---MSM型光电探测器 - 寇建权的博文
  5. android第三方应用,Android 第三方应用接入微信平台研究情况分享(一)
  6. c语言单词字母翻转,C语言来实现字符串反转(只有单词反转,单词里的字母不反转)...
  7. mysql驱动_python3 接口测试数据驱动之操作mysql数据库
  8. python中哈达玛积与矩阵乘法的区别
  9. PyTorch教程(四):维度变换
  10. docker 部署springboot容器日志处理