Open zhl5213 opened 6 years ago
在一个项目中,我重写一个tableViewCell类的-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier方法的时候,使用两个reuseIdentifier来给该cell类设置了两种不同的显示模式。结果cell高度计算全部失效。
经过分析,是因为SDAutoLayout实现高度计算的时候,内部注册cell默认统一使用的类的名字作为reuseIdentifier,然后导致我的类中使用reuseIdentifier来判断显示模式的方法全部没有调用。
因此,新增了几个接口,里面加入了reuseIdentifier判断, 如果使用自定义的reuseIdentifier在cell中进行了业务判断处理,使用新的接口就行了
晕,着了两天终于找到问题了,然后来Git告知,没想到这里已经解决。
使用SD时, 我在给TableView 赋值Frame 时,会造成 cellForRowAtIndexPath 不执行,而numberOfRowsInSection 执行。内部打印位置大小均无问题。
并且因为 使用了WMPageController ,三个item 中,前两个无问题,只有最后一个tableview 发生问题。
在一个项目中,我重写一个tableViewCell类的-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier方法的时候,使用两个reuseIdentifier来给该cell类设置了两种不同的显示模式。结果cell高度计算全部失效。
经过分析,是因为SDAutoLayout实现高度计算的时候,内部注册cell默认统一使用的类的名字作为reuseIdentifier,然后导致我的类中使用reuseIdentifier来判断显示模式的方法全部没有调用。
因此,新增了几个接口,里面加入了reuseIdentifier判断, 如果使用自定义的reuseIdentifier在cell中进行了业务判断处理,使用新的接口就行了