Как лучше всего обрабатывать портретный режим и ландшафтный режим в одном представлении? - PullRequest
0 голосов
/ 25 апреля 2011

В настоящее время я понимаю, что мне нужно назначать координаты в самом коде, а не использовать интерфейсный конструктор.Есть ли лучший способ сделать это?

В настоящее время я пытаюсь обработать представление входа в систему.Он хорошо работает в портретном режиме, но в ландшафтном режиме немного содержимого скрыто.Пожалуйста, предложите, как справиться с этим.

Спасибо

GuruPrasad R Gujjar.

1 Ответ

0 голосов
/ 29 апреля 2011

Вы можете справиться с этим одним из двух способов. Первый - это то, что вы предложили, и измените все их кадры, а второй - просто создать отдельное представление в горизонтальном режиме и выключить его при вращении.

Для обоих случаев вам необходимо реализовать эти два метода

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}
-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    if (toInterfaceOrientation==UIInterfaceOrientationPortrait || toInterfaceOrientation== UIInterfaceOrientationPortraitUpsideDown) {
        //put the portrait orientation here
        self.usernameField.frame=CGRectMake(xPortraitLocation, yPortraitLocation, xWidth, yWidth);
        ...

    }
    else{
        //do the same thing with everything but for landscape mode
    }

В отдельном представлении вы просто отключаете их, говоря self.view = self.lanscapeView или self.portraitView.

Если я собираюсь использовать первый метод, мне иногда хотелось бы создать поддельное представление в конструкторе интерфейса, чтобы я мог поместить все свои элементы в правильные местоположения и заглянуть под вкладку расположения, что исключает угадывание и проверку назначения число.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...