我有一个使用 OwnerDrawnElement 创建的自定义单元格,其中包含可自动调整大小的 UITextView。当文本更改时,应该有适当的布局重绘和单元格高度重新计算。问题是如何保存打开的键盘。UITableView 中有一个方法 - ReloadRows 实际上以某种方式帮助了我。我不能为我的牢房打电话,因为它是第一响应者,我不能辞职。但是当我为另一个单元格调用它时,我的单元格正在按照我的意愿调整大小,但我有不必要的另一个单元格重绘。所以我想知道调用什么方法来重新布局 UITableView 不重新加载数据?!当您向上和向下滚动时,可能会调用相同的方法,单元格变得可见并且重新计算高度。
我尝试了标准的 SetNeedsDisplay()、SetNeedsLayout()、ReloadInputViews()、LayoutSubviews(),但它没有做同样的事情。也许我需要以不同的方式使用它们。我试图将它们称为单元格和整个 tableview 对象。
我查看了 ReloadRows 方法,发现它调用了一些 API 的东西:
Messaging.void_objc_msgSendSuper_IntPtr_int(base.SuperHandle, UITableView.selReloadRowsAtIndexPathsWithRowAnimation_, nSArray.Handle, (int)withRowAnimation);
因此,什么方法也不会强制 tableview 重新计算每个单元格的高度而不重新加载数据。
你能帮我解决这个问题吗?