iPad方向问题

Posted

技术标签:

【中文标题】iPad方向问题【英文标题】:iPad orientation problem 【发布时间】:2010-12-22 13:50:15 【问题描述】:

我从一个有 2 个视图(firstviewcontroller 和 secondviewcontroller)的 tabbar 应用程序开始。第二个视图控制器没有背景图像,但第一个有。

我有两张图片,一张是纵向的,一张是横向的。我想做的就是在方向改变时加载背景图像。我想支持所有方向。

这是我的 viewdidload 方法

-(void)viewDidLoad 

    imgview=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bgportrait.png"]];
    [imgview setFrame:CGRectMake(0, 0, 768, 1024)];
    [self.view addSubview:imgview];
    [self.view sendSubviewToBack:imgview];
    [imgview release];

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation NSLog(@"in shouldrotate"); 返回是;

(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

    if (toInterfaceOrientation == (UIInterfaceOrientationPortrait || UIInterfaceOrientationPortraitUpsideDown))

    NSLog(@"in portrait");

else if (toInterfaceOrientation == (UIInterfaceOrientationLandscapeLeft || UIInterfaceOrientationLandscapeRight))

    NSLog(@"in landscape");



在 willRotateToInterfaceOrientation 中它永远不会进入任何 if 循环并且它不会打印日志,我不确定为什么它的方向与它们中的任何一个都不匹配。我只想为 firstviewcontroller 设置适当的背景图像。我知道它应该很简单,但我无法做到。

【问题讨论】:

请格式化您的代码。在编辑您的问题时,编辑器上方有一个 符号,它将适当地格式化您的代码。 【参考方案1】:

像这样检查你的状况

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

    if(toInterfaceOrientation==UIInterfaceOrientationPortrait || 
       toInterfaceOrientation==UIInterfaceOrientationPortraitUpsideDown)
    
       NSLog(@"in portrait");
    
    else
    
        NSLog(@"in landscape");
    

【讨论】:

是的,现在它进入了 if 循环。现在我做到了

以上是关于iPad方向问题的主要内容,如果未能解决你的问题,请参考以下文章

iPad方向问题

iPad 界面方向

使用 javascript 检测 iPad 设备方向

iPad 方向

iPad的默认方向是啥?

iPad 上的 Cordova 锁定方向失败