我UITableView在我的iPhone应用程序中使用了一个,我有一个属于一个组的人员列表.我希望这样当用户点击特定的人(从而选择单元格)时,单元格的高度会增加,以显示多个UI控件来编辑该人的属性.
这可能吗?
目前我有一个UITableView调整大小UITextView.单元格使用beginUpdates/ 自动调整大小endUpdates,但是当它执行时,表格视图会断断续续(请参阅下面的gif).
最终结果是在UITableViewCell其中具有基于其内容调整大小的文本视图.以下是自定义UITableViewCell类中导致UITableView更新自身的代码.
- (void)textViewDidChange:(UITextView *)textView {
// This is a category on UITableViewCell to get the [self superView] as the UITableView
UITableView *tableView = [self tableView];
if (tableView){
[tableView beginUpdates];
[tableView endUpdates];
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我已经尝试过的事情:
获取当前contentOffset并重置它endUpdates但不起作用UITableView在更新之前禁用滚动然后启用我尝试NO从- (BOOL)textViewShouldEndEditing:(UITextView *)textView
我的UITableView单元格高度返回总是使用UITableViewAutomaticDimension.欢迎任何其他想法或想法.
以下是它的样子:

我不打算使用任何库,所以请不要提出任何建议.
谢谢
编辑:解决方案
在这里找到:我不希望动画在开始更新,结束更新块为uitableview?
感谢@JeffBowen获得了一个很好的发现(虽然hacky它是可行的并且允许我仍然实现UITableViewDelegate支持iOS 7 的方法).在执行更新之前关闭动画,然后在更新后启用以防止UITableView口吃. …