我有一个子视图,我想在隐藏和未被按钮隐藏之间切换。如何淡化子视图并将其淡出?现在它只是立即出现并在我切换按钮时立即消失。
我想知道做这个动画最简单的方法是什么。 感谢
答案 0 :(得分:6)
在iOS 4.0+上,Apple建议您使用新的基于块的动画方法。使用这些,代码看起来像这样:
[UIView animateWithDuration:2.0
animations:^{myView.alpha = 0.0;}];
您正在设置动画的属性进入块内(^{...}
部分)。块有点像函数,因此如果要为多个属性设置动画,可以在其中放置多行代码。例如:
[UIView animateWithDuration:0.2
animations:^{
view.alpha = 0.0;
view.backgroundColor = [UIColor redColor];
}];
如果您需要在动画完成后执行操作,请使用+animateWithDuration:animations:completion:
方法(也使用块),例如:
[UIView animateWithDuration:0.2
animations:^{view.alpha = 0.0;}
completion:^(BOOL finished){ [view removeFromSuperview]; }];
有关详情,请查看UIView Class Reference'动画'部分和'动画视图块'部分。
答案 1 :(得分:2)
这是旧的4.0之前的方式:
http://objcolumnist.com/2009/07/18/simple-uiview-based-animations-on-the-iphone/
......具有概念上简单且易于实施的优点。
float alpha = 1.0; // or 0.0 if it's already visible and you want to fade out
[UIView beginAnimations:@"" context:NULL];
[UIView setAnimationDuration:2.0]; // seconds, not ms. guess how i know?
[mySubView setAlpha:alpha];
[UIView commitAnimations];