translatesAutoresizingMaskIntoConstraints属性的作用及设置含义是什么?
translatesAutoresizingMaskIntoConstraints 属性作用说明
一、属性的具体用途
这个属性是UIKit框架中UIView的内置属性,作用是兼容iOS不同版本的布局机制:
- 在Auto Layout布局体系推出前(iOS 6之前),iOS仅通过autoresizing mask(自动调整掩码)实现布局适配,这套规则通过给视图配置弹簧、固定边距等属性,定义父视图尺寸变化时子视图的适配逻辑,不需要写额外约束。
- Auto Layout推出后,为了兼容旧的布局代码,该属性默认值为true:系统会自动把视图当前的autoresizing mask配置转换为等效的Auto Layout约束,这些自动生成的约束会固定视图的位置和尺寸,不需要开发者手动补充。
- 如果你是在Storyboard或Xib中给控件添加约束,系统会自动将该属性设为false,无需手动修改。
二、collectionView.translatesAutoresizingMaskIntoConstraints = false的含义
这行代码的作用是关闭autoresizing mask到Auto Layout约束的自动转换机制:
- 当你需要完全通过手写代码的方式给collectionView添加Auto Layout约束时,必须加上这行配置,告诉系统不需要自动生成约束,所有布局规则都由你手动写的约束定义。
- 配置为false后,你必须补充足够的约束明确该collectionView的X轴位置、Y轴位置、宽度、高度四个核心布局参数,否则会出现约束冲突,运行时控制台会打印布局错误日志,视图的位置尺寸也会出现异常。
内容的提问来源于stack exchange,提问作者K Purushotham Singh
相关产品推荐
相关产品推荐

