Анимация вида при загрузке из файла пера - PullRequest
2 голосов
/ 21 октября 2011

У меня есть метод, который загружает файл пера, содержащий представление:

[[NSBundle mainBundle] loadNibNamed:@"NewView" owner:self options:nil]; 

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

1 Ответ

3 голосов
/ 22 октября 2011

Существует много способов представления видов и их анимации.

Вы можете создать создание с помощью loadNibname:

Как загрузить UIView с помощью файла пера, созданного с помощью Interface Builder

Один из способов оживить представление - это представить его модально.Это будет анимировано снизу:

[[self navigationController] presentModalViewController:navController animated:YES];

Эти сообщения показывают, как получить больше контроля над анимацией при использовании modalTransitionStyle

Как изменить стиль анимации модального UIViewController?

iPhone - presentModalViewController с переходом вправо

Другой вариант - создать представление, добавить его в качестве вспомогательного для текущего представления и анимировать кадр.Если вы просто загружаете представление, подумайте об использовании UINib - он был добавлен в iOS 4.0 и кешируется.Это двойное перфект.

UINib *nib = [UINib nibWithNibName:@"TestView" bundle:nil];
UIView *myView = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0]];

Затем вы можете добавить его в качестве подпросмотра.

Если вы хотите анимировать подвиды в вашем представлении, см. Этот урок:

http://www.raywenderlich.com/2454/how-to-use-uiview-animation-tutorial

В частности:

CGRect basketTopFrame = basketTop.frame;
basketTopFrame.origin.y = -basketTopFrame.size.height;

CGRect basketBottomFrame = basketBottom.frame;
basketBottomFrame.origin.y = self.view.bounds.size.height;

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationDelay:1.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

basketTop.frame = basketTopFrame;
basketBottom.frame = basketBottomFrame;

[UIView commitAnimations];
...