在加载 tableview 之前检测 iPhone 方向

Posted

技术标签:

【中文标题】在加载 tableview 之前检测 iPhone 方向【英文标题】:Detect iPhone orientation before loading tableview 【发布时间】:2011-09-10 03:16:52 【问题描述】:

所以,我有点纠结...根据this post,iPhone/iPad 的方向是纵向的,直到控制器内部的“自动旋转”功能告诉 ios方向已经改变。我的问题是,在我有机会检测到方向的变化之前,似乎正在加载表格视图单元格。我的 tableview 取决于设备的方向,所以在知道方向之前我无法加载它。有什么我不知道的吗?

谢谢大家!

【问题讨论】:

【参考方案1】:

我相信您正在为应用程序提供对 LAndScape 和 Potrait 模式的支持,因此您应该在 cellForRowAtIndexPath 方法中检测设备方向并为当前方向创建单元格:

if ([UIDevice currentDevice].orientation!=UIDeviceOrientationLandscapeLeft && [UIDevice currentDevice].orientation!=UIDeviceOrientationLandscapeRight) 

 Identifier= @"aCell_portrait"

 else Identifier= @"DocumentOptionIdentifier_Landscape";

【讨论】:

谢谢!我最终得出的结论是,在尝试了以前的解决方案之后,我必须这样做。不知何故,它注册为横向,但随后将其更改为纵向,然后在表格视图加载之前更改回横向。【参考方案2】:

当调用自动旋转函数时,你可以运行

[tableView reloadData]; 

在旋转发生后重新加载表格。

【讨论】:

以上是关于在加载 tableview 之前检测 iPhone 方向的主要内容,如果未能解决你的问题,请参考以下文章

从另一个类重新加载 iPhone 上的 TableView

iphone中uiviewcontroller加载TableView的问题

像 Facebook 时间线一样创建 tableview ...... iPhone 应用程序 [关闭]

iphone使用自定义单元格滚动tableview太慢了

TableView 不会向单元格发送 setEditing 消息

在单击不同的 TableView 单元之前,TableView 单元不会加载视图控制器