Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

解决重写tableViewCell的初始化方法会导致cell的高度计算失效的BUG #266

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

zhl5213
Copy link

@zhl5213 zhl5213 commented Mar 10, 2018

在一个项目中,我重写一个tableViewCell类的-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier方法的时候,使用两个reuseIdentifier来给该cell类设置了两种不同的显示模式。结果cell高度计算全部失效。

经过分析,是因为SDAutoLayout实现高度计算的时候,内部注册cell默认统一使用的类的名字作为reuseIdentifier,然后导致我的类中使用reuseIdentifier来判断显示模式的方法全部没有调用。

因此,新增了几个接口,里面加入了reuseIdentifier判断, 如果使用自定义的reuseIdentifier在cell中进行了业务判断处理,使用新的接口就行了

在一个项目中,我重写一个tableViewCell类的-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier方法的时候,使用两个reuseIdentifier来给该cell类设置了两种不同的显示模式。结果cell高度计算全部失效。

经过分析,是因为SDAutoLayout实现高度计算的时候,内部注册cell默认统一使用的类的名字作为reuseIdentifier,然后导致我的类中使用reuseIdentifier来判断显示模式的方法全部没有调用。

因此,新增了几个接口,里面加入了reuseIdentifier判断, 如果使用自定义的reuseIdentifier在cell中进行了业务判断处理,使用新的接口就行了
@Jack-QoTn
Copy link

晕,着了两天终于找到问题了,然后来Git告知,没想到这里已经解决。

使用SD时,
我在给TableView 赋值Frame 时,会造成 cellForRowAtIndexPath 不执行,而numberOfRowsInSection 执行。内部打印位置大小均无问题。

并且因为 使用了WMPageController ,三个item 中,前两个无问题,只有最后一个tableview 发生问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants