NSLayoutConstraint

item1.attribute1 = multiplier × item2.attribute2 + constant简而言之就是进行约束的计算并使用NSLayoutConstraint创建这个约束,并添加

如下列代码:

需要注意两点:

一个是约束添加调用者需要是父类调用addConstraint,如果是子类自己添加约束会报错

第二需要将子类的translatesAutoresizingMaskIntoConstraints设置为false,否则会将AutoresizingMask转成约束进而覆盖或者不可知影响

translatesAutoresizingMaskIntoConstraints:官方说明如图

需要注意,如果此translatesAutoresizingMaskIntoConstraints属性设置为true,则系统根据view的autoresizing mask创建一系列的约束使得view的UI特性和autoresizing mask制定的一致。这个属性不会和frame等冲突

因为autoresizing mask完全制定了view的size和position,所以一旦引入其他的约束就一定会冲突,因此如果想动态修改UI,则设置translatesAutoresizingMaskIntoConstraints为false,然后进行约束添加

xib(storyboard一样,因storyboard知识xib的大包装而已)默认设置为false,代码创建的view则默认为true

20180411

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容