iOS

iOS reloadData 导致键盘退出的问题

简介:项目中UITableView的cell嵌套了UITextView

问题

项目中UITableView的cell嵌套了UITextView, 并根据UITextView里面的文字的长度自动适应高度, 当textView高度改变时调用tableView的reloadData, 而此时会导致键盘被退出, 这是因为resignFirstResponder被触发了.

解决方法:

cellModel.didChangeTitleTextViewHeightBlock = ^(CGFloat textViewheight) {
            // 调用reloadData 导致键盘被退出
//            [weakSelf.tableView reloadData];
            [weakSelf.tableView beginUpdates];
            [weakSelf.tableView endUpdates];
        };

使用beginUpdatesendUpdates来替换 reloadData

推荐阅读

目录