Второй вид сдвигается вверх при переключении с первого вида - PullRequest
0 голосов
/ 11 февраля 2011

Я создаю приложение, в котором мне нужно удалить текущее представление из superView и загрузить другое. Но новый загруженный вид смещается вверх . Также, когда первый вид снова загружается, он загружается отлично.

Может кто-нибудь предложить что-нибудь, чтобы избавиться от этой проблемы.

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

-(void) flipToBack
{
CreateMessageViewController *oSecondView = [[CreateMessageViewController alloc] initWithNibName:@"CreateMessageViewController" bundle:nil];
[self setMsgViewController:oSecondView];
[oSecondView release];

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];

[viewController.view removeFromSuperview];
[tabBarController.view removeFromSuperview];
[self.window addSubview:[msgViewController view]];
[UIView commitAnimations];
}

Заранее спасибо !!

Ждем ваших добрых ответов.

спасибо

Ответы [ 3 ]

0 голосов
/ 16 февраля 2011

Понял.Это происходит из-за настроек IB.Таким образом, в IB ваш viewController имеет статус-бар, а ваш вид имеет высоту 460 (для iPhone), а не 480. 20 точек - это высота статус-бара.При переходе ко второму представлению его прямоугольник равен {0,0,320,460}, поэтому представление располагается за панелью состояния приложения, и вам не хватает 20 точек снизу.

Чтобы обойти это, вам необходимо:

  1. Зайдите в IB и установите для StatusBessageViewController statusBar значение Unspecified.
  2. Перейдите в раздел размера представления и установите высоту представления на 480 (для iPhone).

Сейчаспредставление вашего CreateMessageViewController будет отображаться правильно.

0 голосов
/ 21 февраля 2011

После долгой игры с кодом и IB я обнаружил ошибку. Это было исправлено как

Откройте файл mainWindow.xib и добавьте объект UIViewController из библиотеки. Измените его класс на класс, который обрабатывает указанный viewController, а затем приходит щелчок. Перейдите в раздел свойств Инспектора атрибутов и установите соответствующее имя пера для контроллера, а затем сохраните и выйдите из IB.

И код меняется на

-(void) flipToBack
 {
     [UIView beginAnimations:nil context:NULL];
     [UIView setAnimationDuration:0.8];
     [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];

     [viewController.view removeFromSuperview];
     [tabBarController.view removeFromSuperview];
     [self.window addSubview:[msgViewController view]];
     [UIView commitAnimations];
 }

Спасибо всем, кто откликнулся !!

0 голосов
/ 15 февраля 2011

Я мало что могу сказать, не глядя на общую картину.Проверьте кадры в IB, чтобы увидеть, правильно ли они установлены.Этот код из вашего приложения Delegate?Есть ли у viewController панель инструментов, отображаемая на его виде?Может быть, ваш взгляд смещен на точные пиксели вашей высоты панели инструментов?

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