проблема ориентации iPad - PullRequest
       10

проблема ориентации iPad

1 голос
/ 22 декабря 2010

Я начал с приложения с вкладками, у которого есть 2 вида (firstviewcontroller и secondviewcontroller). Второй контроллер вида не имеет фонового изображения, но первый имеет.

У меня есть 2 изображения, одно для protrait и одно для пейзажа. все, что я хочу сделать, это загрузить фоновое изображение всякий раз, когда меняется ориентация. Я хочу поддерживать все ориентации.

вот мой метод 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 mustrotate"); вернуть ДА; }

(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (toInterfaceOrientation == (UIInterfaceOrientationPortrait || UIInterfaceOrientationPortraitUpsideDown))
{
    NSLog(@"in portrait");
}
else if (toInterfaceOrientation == (UIInterfaceOrientationLandscapeLeft || UIInterfaceOrientationLandscapeRight))
{
    NSLog(@"in landscape");
}

}

в willRotateToInterfaceOrientation он никогда не входит ни в один из циклов if и не печатает журнал, я не уверен, почему он не соответствует ориентации ни одному из них. Я просто хочу установить соответствующий backgroundimage для первого viewcontroller. я знаю, что это должно быть очень просто, но я не могу понять это правильно.

1 Ответ

2 голосов
/ 22 декабря 2010

проверить ваше состояние, как это

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if(toInterfaceOrientation==UIInterfaceOrientationPortrait || 
       toInterfaceOrientation==UIInterfaceOrientationPortraitUpsideDown)
    {
       NSLog(@"in portrait");
    }
    else
    {
        NSLog(@"in landscape");
    }
}
...