在旋转时调整显示视图的大小
问题描述:
我在视图控制器中处理旋转问题。在旋转时调整显示视图的大小
当视图位于最上方并且电话被旋转时,它会正确调整。
当模式为的视图控制器在上显示时,它和设备被旋转,当用户返回时,视图控制器未完全更新为旋转。我似乎遇到的最大问题是分隔线不能展开以填满整个宽度。
实施例:
我已经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;
}
答
我想这可能是的苹果错误。您可以在自己的应用程序“邮件”中复制它。
步骤中的“邮件”应用,以重现 -
- 在“邮件”应用程序的消息打开收件箱。 (例如,在纵向)
- 点击撰写邮件图标(右下角)并旋转设备(横向)。
- 关闭撰写邮件并立即查看收件箱邮件视图。
结果:隔板线路都断线。
用户的解决方法:在邮件收件箱中向下滚动(导致显示刷新)。
可复制到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];
}
报告为15235773. –
我发现了一个破坏性较小的解决方法;如果您喜欢,请随时将其添加到您的答案中(请参阅更新后的问题)。 :) –