我在处理 View Controller 中的旋转时遇到问题。
当 View 位于最顶部并且手机旋转时,它会正确适应。
当有一个 View Controller 以模态方式呈现在上方并且设备旋转时,当用户返回时下方的 View Controller 不会完全更新以进行旋转。我似乎遇到的最大问题是分隔线不会扩展以填满整个宽度。
例子:
我已经 uploaded my test project to GitHub ;你可以从 https://github.com/tewha/ResizeOnRotate.git 克隆它.
我根本没有代码处理轮换。我的理解是,这应该是全自动的。我缺少什么才能使这项工作正常进行?
编辑:
受下面答案的启发,一个简单的解决方法:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UITableViewCellSeparatorStyle separatorStyle = self.tableView.separatorStyle;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.separatorStyle = separatorStyle;
}
最佳答案
我认为这可能是一个 Apple 错误。您可以在他们自己的应用“Mail”中复制它。
在“邮件”应用程序中重现的步骤 -
- 在“邮件”应用中打开邮件收件箱。 (例如,纵向)
- 点按撰写消息图标(右下角)并旋转设备(横向)。
- 关闭撰写消息并立即查看收件箱消息 View 。
结果:分隔线被打断。
用户解决方法:在消息收件箱中向下和向上滚动(导致显示刷新)。
可重现至 iOS 7.0.2。
编辑
(代码解决方法 - 1)
如果可能,您可以reloadData
在出现时刷新 TableView 。
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView reloadData];
}
代码解决方法 - 2(仅重新加载可见单元格)
- (void)viewWillAppear:(BOOL)animated
{
NSArray *refreshCells = [self.tableView indexPathsForVisibleRows];
[self.tableView reloadRowsAtIndexPaths:refreshCells withRowAnimation:UITableViewRowAnimationNone];
}
关于ios - 在旋转时调整呈现 View 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390566/