-
IB文件和音视频图片等文件会在编译时复制到Main bundle中,但是ib文件会先被编译成nib或者storyboardc文件,之后复制到Main bundle中.
-
plist有三种:XML,JSON,二进制.ib文件编译后的nib文件就属于二进制的plist文件
-
解决ib文件的冲突,右键->source code打开,做出修改后删除<<<<,====,>>>>.即可解决
-
一个xib文件中可以放多个view,但是这些view的Class标签要填不同的类名.
-
xib嵌套使用时,设置class并没有用.
-
UIImage的init(named:)方法会缓存图片,init(contentsOfFile:)方法不会缓存
-
创建可以存放IB文件的bundle,file->new->target,选择macos->bundle,修改这个新建的bundle下的target下的build setting->supported platforms 为 iOS.
-
一个防止ib文件冲突的方法
image.png
-
Assets.xcassets中选择图片的 Slicing解释
-
Asset Catalog会根据用户设备类型的不同分发特定的下载包
-
如果选择了Constraint to margins,那么四周的约束从top,bottom,leading,trailing变成了topMargin,bottomMargin,leadingMargin,trailingMargin.
12. 重要

Content Compression Priority:压缩阻力(抗压缩),值越大,该视图保护其内容的完整性就越强; 如下label,周围约束设置为固定,当label里面字超出范围后,就显示省略号

此时修改约束的Priority(改为749)和Content Hugging Priority(750),让Content Hugging Priority值(750)>约束Priority值(749),则该视图就能成功保护其内容的完整性,

-
Content hugging 内容吸附(抗拉伸),指一个视图保持它的尺寸与其内容尺寸相匹配的能力.左边绿色label的横向Content hugging priority是253,右边是252(没有标出),所以左边label边框缩到文字周围(内容吸附)了.
image.png
如果把2个label的Content hugging priority都改为1000,把中间的约束(虚线)从1000改为999,那么他们2个label就都缩到文字周围(内容吸附)了
- scrollview有上下左右宽高6个约束要确定
-
Trait Variations就是以前的size classes功能. vary for traits 里面的width和height是指,假设你当前选择的这个设备的宽是regular高是compact类型的,并且你勾选了width和height,就是找出所有witdh是regular并且高是compact的设备,给这些设设置约束。
- IB文件加载过程
- 1 将nib加载到内存
- 2 "解固化".实例化nib文件里对应的对象
- 3 建立(outlets,actions)
- 4 调用awakeFromNib(),如果此时去获取nib对应源文件中存储数据的属性,是拿不到的,
- 5 显示内部控件
网友评论