出现删除按钮时重新计算自定义 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 的高度的主要内容,如果未能解决你的问题,请参考以下文章
编辑自定义 UITableViewCell 时不出现插入/删除编辑控件
Android活动生命周期 - 重新启动(销毁)应用程序不会删除对(自定义)监听器的引用?