iPhone: какой метод использовать для поворота вида назад в портретную ориентацию? - PullRequest
1 голос
/ 12 апреля 2010

Я пользуюсь ...

-(void)didRotateFromInterfaceOrientation:

... чтобы адаптировать вид, который был повернут к ландшафту.

Однако я не знаю, какой метод использовать, когда необходимо повернуть вид назад в портретное.

Ответы [ 2 ]

1 голос
/ 12 апреля 2010

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

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
    switch fromInterfaceOrientation {
        case UIInterfaceOrientationPortrait {
            //... handle roation from portrait
            break;
        }
        case  UIInterfaceOrientationLandscapeLeft {
            //... handle roation LandscapeLeft
            break;
        }
        //.. and so on
    }
}

Однако настройку вида для его новой ориентации следует выполнять одним из методов поворота, которые начинаются с «воли». Вышеупомянутый метод сообщает контроллеру представления, какова была ориентация предыдущая . Он не отправляет текущую ориентацию или будет. Методы «воли» позволяют адаптировать вид до завершения новой ориентации.

1 голос
/ 12 апреля 2010

Я использую (void) didRotateFromInterfaceOrientation, чтобы адаптировать вид при включенном вращении…

Тебе не хватает двоеточия. Метод принимает аргумент, поэтому он didRotateFromInterfaceOrientation:.

didRotateFromInterfaceOrientation - еще один допустимый селектор, но он называет совершенно другой (и, вероятно, несуществующий и никогда не вызываемый) метод.

… но какой метод или как определить, что iphone вернулся в вертикальное положение для повторного просмотра?

Насколько я могу разглядеть из документации , один и тот же метод выполняет обе работы. Аргументом метода является старая ориентация, а self.interfaceRotation - новое вращение.

Итак, отметьте одно из этих значений (я бы использовал self.interfaceRotation, если бы я был программистом на iPhone), чтобы увидеть, в какой вы сейчас ориентации, и соответствующим образом обновите ваше представление.

...