HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 在viewDidLoad中错误地报告了方向大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个应用程序需要加载不同的图像作为背景图像取决于设备的方向.我在viewDidLoad中有以下代码

BOOL isLandScape = UIDeviceOrientationIsLandscape(self.interfaceOrientation);

if (isLandScapE)
{
    self.bgImage.image = [UIImage imagenamed:@"login_bg748.png"];        
}

出于某种原因,即使模拟器在横向开始,这个bool仍然是假的.我检查了它,它总是报告处于纵向模式,无论实际的模拟器方向如何.有没有人知道为什么这不起作用?

在shouldAutoRotateForInterfaceOrientation中,我有以下内容

if (UIDeviceOrientationIsLandscape(interfaceOrientation))
    {
        self.bgImage.image = [UIImage imagenamed:@"login_bg748.png"];
    } else
    {
        self.bgImage.image = [UIImage imagenamed:@"login_bg1004.png"];        
    }

    return YES;

这段代码确实有效,它只是搞砸的初创公司.在我执行一次旋转后,它工作正常.

解决方法

原因是viewDidLoad太早了.每个应用程序都以纵向方式启动,然后旋转到横向.调用viewDidLoad时,尚未发生旋转.您希望使用延迟性能,或将测试放在didRotateFromInterfaceOrientation或类似的中.请参阅我的书中的解释:

http://www.apeth.com/iOSBook/ch19.html#_rotation

大佬总结

以上是大佬教程为你收集整理的iphone – 在viewDidLoad中错误地报告了方向全部内容,希望文章能够帮你解决iphone – 在viewDidLoad中错误地报告了方向所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。