ios - 在旋转时调整呈现 View 的大小

标签 ios ios7 autorotate

我在处理 View Controller 中的旋转时遇到问题。

当 View 位于最顶部并且手机旋转时,它会正确适应。

当有一个 View Controller 以模态方式呈现在上方并且设备旋转时,当用户返回时下方的 View Controller 不会完全更新以进行旋转。我似乎遇到的最大问题是分隔线不会扩展以填满整个宽度。

例子:

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;
}

最佳答案

我认为这可能是一个 Apple 错误。您可以在他们自己的应用“Mail”中复制它。

在“邮件”应用程序中重现的步骤 -

  1. 在“邮件”应用中打开邮件收件箱。 (例如,纵向)
  2. 点按撰写消息图标(右下角)并旋转设备(横向)。
  3. 关闭撰写消息并立即查看收件箱消息 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/

相关文章:

ios - 在 iOS 中将字符串转换为十六进制?

objective-c - 如何根据对象的属性对数组进行排序?

ios - 在 swift2 中,UIPageviewController 页面 curl 动画在快速滑动时挂起/卡住

ios - 模态 VC 和旋转的自定义背景

ios7 - 光标未显示在我们应用程序的 UISearchBar 中

iphone - 设置 UITabBarControllers 的 selectedIndex 属性后禁用自动旋转(SDK 错误?)

ios - 防止 AlertView 自动旋转

ios - 用户界面按钮 |即使在主线程中,setTitle 也会花费大量时间

ios - Cordova 应用程序在 safari 上运行良好,但作为应用程序安装时崩溃

ios - 自动旋转背景图像 : How to get rid of tiling effect? 最佳实践?