美文网首页
iOS UITableView reloadData 导致键盘收

iOS UITableView reloadData 导致键盘收

作者: 炸街程序猿 | 来源:发表于2019-12-27 23:56 被阅读0次

    遇到的问题:

    产品设计了一个功能UITableViewCell中的一个UITextField的数字键盘,效果是每次输入数字后使执row的cell上面的数字跟输入的数字相乘,然后动态实时计算并展示出联动计算的结果。我在刷新整个表视图,这里使用了reloadData,会出现每输入一个数字就收回键盘不能连续输入的问题。

    原因:

    系统的reloadData和reloadRowsAtIndexPaths在执行的时候如果发现有的UITableView的子视图(例如这里的cell)有键盘已弹出正在响应(isFirstResponder),就会收起该键盘(resignFirstResponder)。

    一种处理方法

    方法一:我舍弃了reloadData方法,改用了指定行刷新的办法,让需要动态展示运算结果的cell 走reloadRowsAtIndexPaths单行刷新。这样就键盘就不会收起来了。可以连续输入。

    方法二:也可以有键盘的cell自己来做控件显示更新,其他的cell刷新走reloadRowsAtIndexPaths。获取可见cell坐标数组(indexPathsForVisibleRows)剔除那个有键盘的IndexPath。

    相关文章

      网友评论

          本文标题:iOS UITableView reloadData 导致键盘收

          本文链接:https://www.haomeiwen.com/subject/azujoctx.html