如何慢慢隐藏UI元素

时间:2011-05-09 23:34:50

标签: iphone xcode interface-builder

我有一个子视图,我想在隐藏和未被按钮隐藏之间切换。如何淡化子视图并将其淡出?现在它只是立即出现并在我切换按钮时立即消失。

我想知道做这个动画最简单的方法是什么。 感谢

2 个答案:

答案 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];