Как мне остановить вращение mainView? - PullRequest
1 голос
/ 05 января 2011

У меня есть этот код, настроенный для отображения ClockView при повороте телефона в горизонтальную ориентацию, а затем для возврата в основной режим, когда он возвращается в портретную ориентацию.Но когда он возвращается к портретному, портретный вид находится в ландшафтном режиме.Как это исправить?Это мой код.

-(void)willAnimateRotationToInterfaceOrientation(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    UIInterfaceOrientation toOrientation = self.interfaceOrientation;

    if(toOrientation == UIInterfaceOrientationPortrait)
    {
        self.view = mainView;
    }

    else if(toOrientation == UIInterfaceOrientationLandscapeLeft)
    {
        self.view = clockView;
    }

    else if (toOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        self.view = mainView;
    }

    else if(toOrientation == UIInterfaceOrientationLandscapeRight)
    {
        self.view = clockView;
    }
}

1 Ответ

3 голосов
/ 05 января 2011

Возможно, лучше иметь mainView и clockView в качестве подпредставлений вашего контроллера представления:

// in viewDidLoad do [self.view addSubView:mainView]; [self.view addSubView:clockView]; clockView.hidden = YES;

-(void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    if(UIInterfaceOrientationIsPortrait(toOrientation)) {
        mainView.hidden = NO;
        clockView.hidden = YES;
    }
    else {
        mainView.hidden = YES;
        clockView.hidden = NO;
    }
}

Таким образом, оба вида автоматически поворачиваются в правильном направлении, и ваша проблема должна исчезнуть.

...