如何淡入淡出一层?

时间:2013-03-06 00:30:36

标签: ios objective-c core-animation

我需要实现一个非常简单的动画,我必须使用Core Animation来完成它。动画是在我点击一个按钮,一个视图淡入2秒后,10秒后淡出,但我不知道如何使用Core Animation,我会很感激任何建议。

1 个答案:

答案 0 :(得分:1)

核心动画编程指南有一个非常好的基本示例,说明了如何使用显式CABasicAnimation对象:

theAnimation=[CABasicAnimation animationWithKeyPath:@"opacity"];
theAnimation.duration=2.0;
theAnimation.fromValue=[NSNumber numberWithFloat:0.0];
theAnimation.toValue=[NSNumber numberWithFloat:1.0];
[theLayer addAnimation:theAnimation forKey:@"animateOpacity"];

就你想要的10秒延迟而言,你可以使用GCD等待10秒,然后反过来执行完全相同的事情:

dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, 10000000000); // 10 seconds
dispatch_after(time, dispatch_get_main_queue(), ^()
{
    // Same thing, but with the fromValue/toValue reversed
});

**编辑:修正了fromValue / toValue值