在旋转时调整显示视图的大小

问题描述:

我在视图控制器中处理旋转问题。在旋转时调整显示视图的大小

当视图位于最上方并且电话被旋转时,它会正确调整。

当模式为的视图控制器在上显示时,它和设备被旋转,当用户返回时,视图控制器未完全更新为旋转。我似乎遇到的最大问题是分隔线不能展开以填满整个宽度。

实施例:

enter image description here

我已经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; 
} 

我想这可能苹果错误。您可以在自己的应用程序“邮件”中复制它。

步骤中的“邮件”应用,以重现 -

  1. 在“邮件”应用程序的消息打开收件箱。 (例如,在纵向)
  2. 点击撰写邮件图标(右下角)并旋转设备(横向)。
  3. 关闭撰写邮件并立即查看收件箱邮件视图。

结果:隔板线路都断线。

用户的解决方法:在邮件收件箱中向下滚动(导致显示刷新)。

可复制到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]; 
} 
+0

报告为15235773. –

+0

我发现了一个破坏性较小的解决方法;如果您喜欢,请随时将其添加到您的答案中(请参阅更新后的问题)。 :) –