IQKeyboardManager上的bug以及tableViewcell乱跳

问题一:当使用IQKeyboardManager时,一进入那个界面直接弹出键盘时,就会出现此问题,因为导入IQKeyboardManager是全局受影响的。例如:下图出现的黑条,之前在另一个项目中也遇到过,是灰色的大概45左右的高度的条。

1234567.gif
处理方式:
#pragma mark - Life Cycle
- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.searchBar.textFiled becomeFirstResponder];
    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;
     [IQKeyboardManager sharedManager].enable = NO;    
}
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
      [IQKeyboardManager sharedManager].enable = YES;
}

问题二:tableview点击cell上的按钮cell自动往上跳动

IQKeyboardManager上的bug以及tableViewcell乱跳_第1张图片
1211.gif

也有同样的小伙子遇到了同样的问题,可查看该帖子:帖子地址

并也设置了如下属性,但问题依然还是存在。

_tableView.estimatedRowHeight = 0;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.estimatedSectionFooterHeight = 0;

继续研究最后发现是[self.tableView reloadData];惹起的是非,注释掉就不会乱跳了。顾名思义罪魁祸首找到了,既然不让我刷新整个列表,那只能换种思路直接刷新每个cell,看看还有没有该毛病。比比再多,不如直接实践来的痛快。

IQKeyboardManager上的bug以及tableViewcell乱跳_第2张图片
图片.png

注意:如果设置为UITableViewRowAnimationAutomatic,则点击时会出现如下图效果。。。

IQKeyboardManager上的bug以及tableViewcell乱跳_第3张图片
12345.gif

你可能感兴趣的:(IQKeyboardManager上的bug以及tableViewcell乱跳)