如何淡入/淡出矩形或文本?

Tia*_*hou 5 iphone cocoa-touch core-animation

我想达到淡入/淡出rect或text的效果.我在我的UIVIew的drawRect:方法中调用了CGContextFillRect或CGContextShowText.我不知道是否有一种方法可以实现动画,而无需使用的UIView的支持(即[UIView的beginAnimations:].该预期的效果我想实现的是类似微软的什么兵检索算法引擎,就像那些黑色的小方块淡入/当你在网页上移动时淡出.提前感谢!

Bra*_*son 23

为什么你不想使用UIView的动画块?使用它来动画视图(UILabel或其他)的不透明度的变化非常容易.例如,以下代码将在0.5秒的持续时间内淡出给定视图:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];

viewToFadeOut.alpha = 0.0f;

[UIView commitAnimations];  
Run Code Online (Sandbox Code Playgroud)

要淡入,只需将1.0f的alpha值替换为1.0f即可.

您可以使用手动构造的CABasicAnimation来操作UIView的图层:

CABasicAnimation *fadeOutAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
fadeOutAnimation.duration = 0.5f;
fadeOutAnimation.removedOnCompletion = NO;
fadeOutAnimation.fillMode = kCAFillModeForwards;
fadeOutAnimation.toValue = [NSNumber numberWithFloat:0.0f];
[viewToFadeOut.layer addAnimation:fadeOutAnimation forKey:@"animateOpacity"];
Run Code Online (Sandbox Code Playgroud)

如果您想要做的就是淡入/淡出视图周围的边框,请尝试动画UIView图层的borderColor属性(与上面的CABasicAnimation相同,只替换opacityborderColor带有CGColor强制转换的toValue id).