Assertion failure in -[UICollectionView layoutSublayersOfLayer:]

先说下我遇到这个问题的情况:

我是在view上创建了一个Collectionview,它本身的frame是直接用CGRectMake(0,0,SCREEN_WIDTH,SCREEN_HEIGHT - 64
collectionview实例化的时候注册了自定义的collectionviewCell,在collectionview的协议方法里注册了头视图,头视图没有使用自定义头视图。在头视图上的控件属性全都是以懒加载的形式定义,添加。设置的,在协议方法注册了头视图,头视图没有使用自定义头视图。在头视图上的控件属性全都是以懒加载的形式定义,添加。

最后在真机测试时,在其他版本上都没问题,但是在7.0系统上运行时出现闪退,打断点提示的错误是:Assertion failure in -[UICollectionView layoutSublayersOfLayer:]   

然后我试了各种方法后发现,在collectionview实例化的时候让collectionview对象调用一下layoutSubviews方法,并且要在自定义collectionviewCell里面的数据源属性的setter方法里添加[selfsetNeedsLayout];就可以解决这个问题,(下面附加结局问题的代码截图)但是我仍然没有发现问题到底出在什么地方。这很尴尬。。。。在这里稍微总结一下,给自己个提醒。希望知道这个问题的大神给个解析,不胜感激!

collection view调用layoutSubviews方法截图:


Assertion failure in -[UICollectionView layoutSublayersOfLayer:]_第1张图片

自定义单元格里的数据源setter方法调用截图:

Assertion failure in -[UICollectionView layoutSublayersOfLayer:]_第2张图片


你可能感兴趣的:(iOS)