出现删除按钮时重新计算自定义 UITableViewCell 的高度

Posted

技术标签:

【中文标题】出现删除按钮时重新计算自定义 UITableViewCell 的高度【英文标题】:Recalculating height of custom UITableViewCell when Delete button appears 【发布时间】:2011-11-06 14:22:57 【问题描述】:

我创建了一个包含多行标签的 UITableViewCell 子类。在 TableViewDelegate 中,我重写 -setEditing: 以在圆形删除小部件可见时重新计算具有缩短宽度的标签的高度。到目前为止,这有效。

但是,当点击此圆形小部件并出现“删除”按钮时,单元格似乎被重新布局(标签变得不那么宽),但未重新计算单元格的高度。在-heightForRowAtIndexPath: 中设置断点表明通过点击圆形小部件/出现的新按钮不会触发此类事件。在这种情况下,如何让我的 tableView 重新计算单元格的高度?

【问题讨论】:

【参考方案1】:

尝试这样的空更新块:

[self.myTable beginUpdates];
[self.myTable endUpdates];

它会更新行高(除了其他东西)。

【讨论】:

是的,但我的问题是在描述的情况下何时调用它。 也许这是另一个问题:当删除按钮出现时,表格视图单元格及其所有子视图都会根据其在 InterfaceBuilder/Xcode 中的自动调整大小行为自动调整大小。您可以在此处对其进行调整以使其保持原位。 是的。标签确实会调整大小,例如当我滑动一条线以使删除按钮出现时。但是,发生这种情况时,它所在的单元格不会调整大小,因此标签的文本可能会被向下推到单元格的边框下方。 我希望 TableView 在出现此按钮时以及在标签自动调整大小后重新评估单元格高度。这似乎不会发生。另一方面,我目前使用检查tableView:heightForCellForName 中的editing=YES 并添加一个常量的拐杖。然而,这对定位不利,并且会改变所有单元格的高度,即使只滑动了一个单元格并且没有向其他单元格添加新元素。所以我仍在寻找更好的解决方案。

以上是关于出现删除按钮时重新计算自定义 UITableViewCell 的高度的主要内容,如果未能解决你的问题,请参考以下文章

重新计算自定义 VBA 函数,仅应请求

当我按下后退按钮 Swift 3 时,删除的数据重新出现

编辑自定义 UITableViewCell 时不出现插入/删除编辑控件

Android活动生命周期 - 重新启动(销毁)应用程序不会删除对(自定义)监听器的引用?

Android 自定义EditText,有输入时右边显示删除按钮,没有输入时隐藏

滑动删除 UITableViewCell 时,偶尔会出现红色减号删除图标