首先,如果答案已经存在,请原谅我(老实说,我已经工作和寻找了大约两周)。
现在的情况:
我有一个 UITextView
作为 UITableView
中 UITableViewCell
的 subview 。 UITextView
是第一响应者(当用户键入时)。
我已将其设置为(通过委托(delegate)协议(protocol)方法),以便在每个键入字符后,重新计算单元格的 rowHeight
(正确地并在 rowHeight 的 tableViews 委托(delegate)协议(protocol)中)。到目前为止一切都很好。
然后,我希望重新加载(或刷新,无论术语是什么)该单元格,而不放弃其 subview UITextView
作为第一响应者。
问题的解决方案并不令人满意:
我可以使用[tableView reloadData]
,然后使用[textViewBecomeFirstResponder]
来模拟(这样用户甚至不需要请注意,textView 已重新加载)并且 rowHeight 很完美,但这给我带来了很多问题(特别是确保每次用户键入字符时光标不会跳到末尾和 由于 textView 退出,自动更正强制执行其建议)。
有没有办法重绘或调整 UITableViewCell
的大小(以动态更改其 rowHeight
),而不导致其任何 subview 辞去第一响应者的角色?
最佳答案
使用tableView的[tableView beginUpdates]
和[tableView endUpdates]
将解决这个问题。请参阅this answer了解更多信息。
关于iphone - 不使用 reloadData 实时调整 UITableViewCell 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267146/