平放在表面上时的 iPad 启动方向
Posted
技术标签:
【中文标题】平放在表面上时的 iPad 启动方向【英文标题】:iPad launch orientation when flat on surface 【发布时间】:2010-10-10 17:30:40 【问题描述】:我有以下代码:
-(void)viewWillAppear:(BOOL)animated
UIDeviceOrientation orientation = [[UIDevice currentDevice] UIInterface];
if(orientation==UIDeviceOrientationLandscapeLeft || orientation==UIDeviceOrientationLandscapeRight)
NSLog(@"Device Landscape");
else
NSLog(@"Device Portrait");
这非常适用于模拟器和设备,但前提是 iPad 不是平放在表面上,例如,如果我将 iPad 放在我的桌子上并加载视图,它会显示它的肖像,所以我无法检测到视图出现时的方向。
关于调用 viewWillAppear 时检测界面方向的最佳方法有什么想法吗?
谢谢
【问题讨论】:
好吧,如果 iPad 实际上是 FaceUp,你希望你的应用做什么? 他想知道当设备平放时是横向还是纵向显示视图。 我有一个子视图,它显示在不同的地方,具体取决于视图是横向/纵向。所以我需要知道view出现时界面的方向。 【参考方案1】:您应该使用[self interfaceOrientation]
而不是设备方向。
【讨论】:
在 ios 12(或 8+)中呢?【参考方案2】:[[UIApplication sharedApplication] statusBarOrientation]
也适用于您在代码中某处无法访问[self interfaceOrientation]
【讨论】:
【参考方案3】:首先,你知道 UIViewController 的 interfaceOrientation 属性吗?看起来您正在尝试复制它。如果您真的想这样做,只需订阅设备方向更改通知,检查新方向是否是有效的界面方向(这是一个宏),如果是,将值存储到某个变量(如 lastSeenOrientation)。然后,您可以在任何地方依赖该值。
【讨论】:
以上是关于平放在表面上时的 iPad 启动方向的主要内容,如果未能解决你的问题,请参考以下文章