假设我在Xcode for iOS中有隐藏视图。现在,当我将视图设置为不隐藏(view.hidden = NO)时,如何才能使它现在显示,但是有动画?
答案 0 :(得分:54)
您可能不希望设置view.hidden
,而是将view.alpha
设置为0
(对应hidden = YES
)或1(hidden = NO
)。
然后,您可以使用隐式动画来显示视图,例如
[UIView animateWithDuration:0.3 animations:^() {
view.alpha = 1.0;
}];
答案 1 :(得分:8)
如果您想要其他动画而不仅仅是褪色,请使用此方法
[UIView transitionWithView:_yourView duration:1.0 options:UIViewAnimationOptionTransitionCurlDown animations:^(void){
[_yourView setHidden:NO];
} completion:nil];
答案 2 :(得分:5)
对于淡入淡出,您可以调整视图的alpha属性。
myView.alpha = 0;
[UIView animateWithDuration:0.5 animations:^{
myView.alpha = 1;
}];
这将在0.5秒内对视图myView
应用淡入淡出。许多UIView属性都是可动画的;你不仅限于alpha衰落。您可以使用动画更改背景颜色,甚至旋转和缩放视图。如果你需要进一步的控制和高级动画,你可以进入核心动画 - 一个更复杂的动画框架。
答案 3 :(得分:1)
-(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];