获取iPad的当前方向?

64
在给定的事件处理程序中(不是“shouldAutorotateToInterfaceOrientation”方法),我如何检测当前iPad的方向?我有一个文本字段,当键盘出现时必须向上动画显示在横向视图中,但不在纵向视图中,并希望知道我处于哪个方向以查看是否需要进行动画。
11个回答

-1

[UIDevice currentDevice].orientation非常好用。

但是!!! ... 关键是要将它添加到- (void)viewWillAppear:(BOOL)animated 方法中。

示例:

(void)viewWillAppear:(BOOL)animated{
   ...
   BOOL isLandscape = UIInterfaceOrientationIsLandscape(self.interfaceOrientation);
   ...
}

如果你在 - (void)viewDidLoad 调用它,它不可靠,特别是如果你使用多个线程(主 UI 线程、后台线程来访问大量外部数据等)。

说明: 1)即使您的应用程序将默认方向设置为纵向,用户也可以锁定它为横向。因此,设置默认值并不是解决这个问题的真正方法。 2)还有其他任务,如隐藏导航栏,应放置在viewWillAppear中以使其正常工作,并同时防止闪烁。同样适用于其他视图,例如UITableView willDisplayCell -> 使用它来设置cell.selected和cell.accessoryType。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接