iOS:负载时的设备方向
|
看来,当我的应用加载时,它不知道其当前方向:
UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationPortrait) {
NSLog(@\"portrait\");// only works after a rotation, not on loading app
}
旋转设备后,我将获得正确的方向,但是在加载应用程序时,如果不更改方向,似乎使用[[UIDevice currentDevice] orientation]
不知道当前方向。
首次加载应用程序时,还有另一种方法可以检查此问题吗?
没有找到相关结果
已邀请:
16 个回复
杭难插
原始答案 尝试在plist文件中设置应用程序接受的设备方向:
这将表明您的应用程序支持纵向(底部的主页按钮),左横向和右横向。 然后,在您的UIViewControllers中,您需要重写
方法,以在应用程序旋转时返回YES:
如果设备处于您支持的方向之一,这将告诉UIViewController自动旋转。如果您还想支持上下颠倒的方向(顶部带有“主页”按钮的人像),则将其添加到您的plist中,然后从此方法中返回YES即可。 让我们知道结果如何。
逆捐凶撤小
根据UIDevice参考: 引用: \“除非通过调用beginGeneratingDeviceOrientationNotifications启用了定向通知,否则此属性的值始终返回0” 最初,我假定此属性始终包含当前方向,但显然并非如此。我猜想在其他通常访问direction属性的情况下,我们会在后台处理打开通知的操作,因此,这显然不需要在应用程序委托中手动完成
徐百晴墓斜
类型存储在
变量中。它们是不同的,不应视为平等。请注意,
等于
(因为接口旋转的方向与设备相反)。
抬澈帅沮
然后将以下方法放入您的类中
上面的方法将检查ipad或iPhone的状态栏的方向,并根据该方向以所需的方向制作动画。
信藉乒
或
。为了确定是纵向还是横向,我将the16用作后备,如下所示:
这样,我可以确保
总是告诉我该设备是否处于纵向模式,否则,它将处于横向模式。即使是第一次加载应用程序。
笛驮型迸
缔恃钨
坝胺绣敝
氏脑
对于风景:
这总是在负载下工作。
埃庐
(即
),要进行检查,您需要使用
希望这可以帮助。
抽法
}
淑灯
我见过很多代码片段,但是它们都无法正常工作(iPad和iPhone,iOS 5.0+)。 与其在try-this-try-that上摸索,不如将以下内容放在根vc中:
不使用当前方向的segue动画仍然存在棘手的问题。我的猜测是,对每个VC进行子类化,然后对pop上的push / notify委托进行一些定位将是一种方法。 同样重要: 应该AutorotateToInterfaceOrientation不起作用 横向模式下的tabBarController和navigationControllers,第二集
邪罗逢确胃
bab
或在应用程序委托中实现这一点
有用
卧沫
捻盒愧杯
方法内部使用int值:
在哪里考虑以下内容。 。 。 -1 =纵向(正确向上) -2 =纵向倒置 -3 =景观(右) -4 =风景(左) 然后可以在检测到方向后使用
语句来调用方法,依此类推: 希望这对某人有所帮助