Можно ли удалить из Superuview с анимацией? - PullRequest
2 голосов
/ 11 ноября 2009

У меня есть 2 слоя сверху и снизу в моей программе

как я могу удалить верхний слой с анимацией или вернуть верхний слой назад, это возможно?

Ответы [ 2 ]

11 голосов
/ 11 ноября 2009

Самым простым является игра с рамкой и альфой перед ее удалением.

Вы можете получить некоторые интересные эффекты

-(void)removeWithEffect:(UIView *)myView
{
 [UIView beginAnimations:@"removeWithEffect" context:nil];
 [UIView setAnimationDuration:0.5f];
 //Change frame parameters, you have to adjust
 myView.frame = CGRectMake(0,0,320,480);
 myView.alpha = 0.0f;
 [UIView commitAnimations];
 [myView performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:0.5f];
}

Обновление iOS

Теперь вы можете использовать блоки для анимации

[UIView animateWithDuration:0.5f
     animations:^{view.alpha = 0.0;}
     completion:^(BOOL finished){ [view removeFromSuperview]; }];
7 голосов
/ 28 апреля 2011

Если вы ориентируетесь на iOS 4.0 и выше, вы можете использовать блоки анимации:

[UIView animateWithDuration:0.2
     animations:^{view.alpha = 0.0;}
     completion:^(BOOL finished){ [view removeFromSuperview]; }];

(приведенный выше код взят из документации Apple по UIView)

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