首先,如果答案已经存在,请原谅我(老实说,我已经工作并且搜索了大约两周)。
现在,情况:
我有一个UITextView
作为UITableViewCell
中UITableView
的子视图。 UITextView
是第一个响应者(当用户正在键入时)。
我设置了(通过委托协议方法),以便在每个键入的字符之后,重新计算单元格的rowHeight
(正确地并且在rowView的tableViews委托协议中)。到目前为止一切都很好。
然后,我希望重新加载(或刷新,无论术语可能是什么)没有将其子视图UITextView
作为第一响应者进行重新加载。
解决问题的一个不令人满意的解决方案:
我可以使用[tableView reloadData]
然后[textView becomeFirstResponder]
来模拟这个(这样用户甚至不会注意到textView被重新加载)并且rowHeight是完美的,但这已经给我带来了很多问题(尤其是每次用户输入一个字符和并且由于textView辞职而强制执行其建议时,确保光标没有跳到最后)。
有没有办法重绘或调整UITableViewCell
(以动态更改其rowHeight
)而不会导致其任何子视图作为第一响应者辞职?
答案 0 :(得分:18)
使用tableView的[tableView beginUpdates]
和[tableView endUpdates]
将解决此问题。有关详细信息,请参阅this answer。