Виды движутся без причины - PullRequest
1 голос
/ 17 августа 2011

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

Ниже приведен код, который я вставил для использования с анимацией:

WhatIsCTTView *whatIsCTTView = [[WhatIsCTTView alloc] initWithNibName:@"WhatIsCTTView" bundle:nil];
UIView *currentView = self.view;
UIView *theWindow = [currentView superview];
UIView *newView = whatIsCTTView.view; 
[currentView removeFromSuperview];
[theWindow addSubview:newView];
CATransition *animation = [CATransition animation];
[animation setDuration:0.5];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[theWindow layer] addAnimation:animation forKey:@"SwitchToCTTView"];

Любая помощь будет принята с благодарностью,

Спасибо

Мэтт

EDIT:

Я узнал, как решить эту проблему, просто добавьте строку

"newView.frame = CGRectMake (0, 20, 320, 460);"

после добавления нового подпредставления на экран, чтобы убедиться, что оно размещено в правильном положении. Посмотрите этот ТАК вопрос (/3244566/iphone-addsubview-show-view-slishkom-vysoko-kak-mne-pereiti-vniz), где я получил свой ответ.

Мэтт

...