// 某自定义的view的layoutSubviews方法
- (void)layoutSubviews
{
[super layoutSubviews];
// 执行完[super layoutSubviews]后,写约束代码,在iOS7下会崩溃,报 Assertion failure in [MyClass layoutSublayersOfLayer:],iOS8下则是正常的。
}
修改方法,把[super layoutSubviews];放在后面,像下面这样
- (void)layoutSubviews
{
// 自定义约束的代码
[super layoutSubviews];
}
有时,在自定义view里给subview写约束代码,需要拿到self.width或self.height,所以只能在在layoutSubviews里写约束