Как остановить вращение mainView?

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

-(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;
    }
}

person Andrew    schedule 05.01.2011    source источник


Ответы (1)


Вероятно, лучше иметь как 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;
    }
}

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

person mrueg    schedule 05.01.2011