在加载 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中uiviewcontroller加载TableView的问题
像 Facebook 时间线一样创建 tableview ...... iPhone 应用程序 [关闭]