objective-c - CAMediaTimingFunction 具有 3 个 {0.0f} 控制点?

标签 objective-c cocoa core-animation

我正在尝试为一些 NSView 的 alpha 过渡设置动画。它需要在另一个动画期间发生,特别是它的 super View (边界更改)。解释原因有点复杂,但我需要这些 alpha 转换具有计时功能,其中 alpha 在持续时间的前 3/4(0.25 秒)内保持在 0.0。我想如果我自己定义一个定时函数,控制点为0.0,0.0,0.0,1.0,就能达到想要的效果了。显然,我不了解具体的计时函数和一般的数学。

如果有人可以提供一些建议,那就太好了!

问候, 亚历克

最佳答案

CAMediaTimingFunction 使用控制点创建贝塞尔曲线。我认为对于此任务,更好的解决方案是使用关键帧来实现不透明动画。

CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
animation.values = [NSArray arrayWithObjects:
                    [NSNumber numberWithFloat:0.0],
                    [NSNumber numberWithFloat:1.0], nil];
animation.keyTimes = [NSArray arrayWithObjects:
                      [NSNumber numberWithFloat:0.75],
                      [NSNumber numberWithFloat:1.0], nil];

这将创建一个动画,该动画在持续时间的四分之三之前一直保持在 0,然后移动到 1。

关于objective-c - CAMediaTimingFunction 具有 3 个 {0.0f} 控制点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6607292/

相关文章:

swift - OSX/swift : Call a function when internet connection is established/restored

objective-c - cocoa - loadNibNamed :owner:topLevelObjects: from loaded bundle

objective-c - 在进行消息转发时避免编译器警告

ios - 从包含 CGImage 的 UIImage 对象获取 NSData

ios - 如何从我的 iPad 应用程序 (Objective-C) 打开设置

objective-c - "spaces"、 "dashes (-)"、 "apostrophes (' )", and "字母的正则表达式"

cocoa - Mac 开发入门

iphone - 像动画一样使用 UIAlertVIew 添加 subview ,具有弹跳效果

ios - 为什么 CALayer 不维护其内容?

ios - 掩蔽性能