我在视图控制器中处理旋转时遇到问题。
当视图位于最顶层且手机旋转时,它会正确适应。
如果视图控制器以模态超过呈现,并且设备已旋转,则当用户返回时,视图控制器未完全更新以进行旋转。我似乎遇到的最大问题是分隔线不会扩展以填充整个宽度。
示例:
我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;
}
答案 0 :(得分:4)
我认为可能是 Apple bug 。您可以在自己的应用“邮件”中重现它。
在“邮件”应用中重现的步骤 -
结果:分隔线已损坏。
用户的解决方法:在消息收件箱中向下和向上滚动(导致显示刷新)。
可重复使用iOS 7.0.2。
修改强>
(代码解决方法 - 1)
如果可能,您可以reloadData
在桌面视图出现时刷新它。
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView reloadData];
}
代码解决方法 - 2(仅重新加载可见单元格)
- (void)viewWillAppear:(BOOL)animated
{
NSArray *refreshCells = [self.tableView indexPathsForVisibleRows];
[self.tableView reloadRowsAtIndexPaths:refreshCells withRowAnimation:UITableViewRowAnimationNone];
}