Как отобразить просмотр с анимацией
Скажем, у меня есть скрытый вид в Xcode для iOS. Теперь, когда я установил представление не скрытым (view.hidden = NO), как я могу сделать его так, чтобы он теперь появился, но с анимациями?
Ответы
Ответ 1
Возможно, вам нужно не устанавливать view.hidden
, а установить view.alpha
в 0
(соответствует hidden = YES
) или 1 (hidden = NO
).
Затем вы можете использовать неявные анимации, чтобы показать представление, например
[UIView animateWithDuration:0.3 animations:^() {
view.alpha = 1.0;
}];
Ответ 2
Если вы хотите другие анимации, а не только затухание, используйте этот метод
[UIView transitionWithView:_yourView duration:1.0 options:UIViewAnimationOptionTransitionCurlDown animations:^(void){
[_yourView setHidden:NO];
} completion:nil];
Ответ 3
Для выцветания вы можете настроить альфа-свойство представления.
myView.alpha = 0;
[UIView animateWithDuration:0.5 animations:^{
myView.alpha = 1;
}];
Это приведет к постепенному исчезновению более чем за 0,5 секунды до представления myView
. Многие свойства UIView являются анимированными; вы не ограничиваетесь только альфа-замиранием. Вы можете менять цвета фона или даже поворачивать и масштабировать вид с анимацией. Если вам нужен дополнительный контроль и расширенная анимация, вы можете перейти в Core Animation - гораздо более сложную структуру анимации.
Ответ 4
-(void)showView{
[UIView beginAnimations: @"Fade Out" context:nil];
[UIView setAnimationDelay:0];
[UIView setAnimationDuration:.5];
//show your view with Fade animation lets say myView
[myView setHidden:FALSE];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hideView) userInfo:nil repeats:YES];
[UIView commitAnimations];
}
-(void)hideView{
[UIView beginAnimations: @"Fade In" context:nil];
[UIView setAnimationDelay:0];
[UIView setAnimationDuration:.5];
//hide your view with Fad animation
[myView setHidden:TRUE];
[UIView commitAnimations];
}
ИЛИ вы можете попробовать таким образом
self.yourView.alpha = 0.0;
[UIView beginAnimations:@"Fade-in" context:NULL];
[UIView setAnimationDuration:1.0];
self.yourView.alpha = 1.0;
[UIView commitAnimations];