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