iOS Assertion failure in [MyClass layoutSublayersOfLayer:]

// 某自定义的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里写约束

原文地址:https://www.cnblogs.com/oumygade/p/4714855.html