ios - 如何淡入淡出图层?

原文 标签 ios objective-c core-animation

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

最佳答案

Core Animation Programming Guide 有一个非常好的基本示例,说明您想要使用显式 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 值

关于ios - 如何淡入淡出图层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15236815/

相关文章:

iphone - CALayer 的抗锯齿对角边缘

ios - 当位置数量发生变化时,无法为 CAGradientLayer 的位置属性设置动画

objective-c - 淡出 cocoa 窗口

ios - 让用户随时了解他们的位置并在 iOS 后台运行的应用程序?

ios - iPad 2 hd,我会有内存问题吗?

ios - Instrument 释放后仍报内存泄漏

objective-c - textDidChange 与 controlTextDidChange

ios - NSArray 包含对象 : faster alternative?

ios - Swift 中的整数溢出

ios - 如何从Objective-C的右上角淡入并扩展模态