iOS - 如何处理自定义表格单元格中的方向变化

Posted

技术标签:

【中文标题】iOS - 如何处理自定义表格单元格中的方向变化【英文标题】:iOS - how to handle orientation changes in custom table cells 【发布时间】:2010-09-27 22:20:11 【问题描述】:

我将 UITableViewCell 子类化为 tableView 的自定义单元格。我将文本和图像添加到单元格的 contentView。

在横向模式 (iPad) 下一切看起来都很棒,但当我旋转到纵向时就没有那么多了。处理方向更改以便所有表格单元格可以重新定位其 contentView 中的内容的最佳位置在哪里?我是把这段代码放在 TableViewController 中还是 UITableViewCell 子类中?

【问题讨论】:

【参考方案1】:

您可以使用单元格视图的 autoresizingMask 来查看是否可以自动获得正确的结果。如果这不起作用,您可以在 tableView 的 willAnimateRotationToInterfaceOrientation 中执行以下操作:

NSArray* visibleCells = [tableView indexPathsForVisibleRows];
[self.tableView reloadRowsAtIndexPaths:visibleCells withRowAnimation:NO];

【讨论】:

-reloadRowsAtIndexPaths:withRowAnimation:的第二个参数不是BOOL;这是一个UITableViewRowAnimation 类型 好的,我知道这是一个老话题,但是...您可以将BOOL 传递给该方法;苹果已经做到了,NO 不会给你动画,YES 会给你一个自动动画(不管那是什么意思)。 这个答案还是很有用的。我一直在尝试使用“viewWillLayoutSubviews”和使用方向代码来实现这一点,但这会占用太多内存。这很棒。

以上是关于iOS - 如何处理自定义表格单元格中的方向变化的主要内容,如果未能解决你的问题,请参考以下文章

如何处理自定义 UIViewController 委托 (ARC)?

如何处理自定义技能中用户的“是”/“否”响应?

如何处理自定义结果视图的 NSFetchedResultsControllerDelegate 更新

如何处理自定义 android 视图/小部件的可见性更改

iOS:自定义表格视图单元格中的约束

IOS/Objective-C:检测自定义表格视图单元格中的按钮按下?