我的交易开始很慢,很快,然后就慢了。我需要线速度。
我找到了UIViewAnimationOptionCurveLinear,但找不到[CATransaction begin]的例子
这是我的代码:
[ CATransaction begin ];
if( graph_animation_enable )
[CATransaction setAnimationDuration: graph_animation_seconds ];
else
[CATransaction setAnimationDuration: 0 ];
//[CATransaction setValue : ( id ) kCFBooleanTrue forKey : kCATransactionDisableActions];
graph_CALayer.frame = CGRectMake( left_x, top_y, width, height );
graph_CALayer.backgroundColor = bar_background_color.CGColor;
CAMediaTimingFunction *linearTiming =
[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionLinear];
[CATransaction setAnimationTimingFunction: linearTiming];
[CATransaction commit];我试过答案,但仍然是非线性的。动画开始,但随后慢下来。
发布于 2016-07-26 22:42:50
使用CATransaction setAnimationTimingFunction和kCAMediaTimingFunctionLinear的定时值
代码将如下所示:
CAMediaTimingFunction *linearTiming =
[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionLinear];
[CATransaction setAnimationTimingFunction: linearTiming]发布于 2018-07-21 15:42:03
使用Swift 5,CATransaction有一个名为setAnimationTimingFunction(_:)的方法。setAnimationTimingFunction(_:)有以下声明:
class func setAnimationTimingFunction(_ function: CAMediaTimingFunction?)设置用于此事务组中所有动画的计时函数。..。这是一种方便的方法,可以为
CAMediaTimingFunction键的value(forKey:)值设置kCATransactionAnimationTimingFunction。
因此,您可以使用以下代码片段之一为CATransaction设置线性动画
CATransaction.begin()
CATransaction.setAnimationTimingFunction(CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear))
/* ... */
CATransaction.commit()CATransaction.begin()
CATransaction.setValue(CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear), forKey: kCATransactionAnimationTimingFunction)
/* ... */
CATransaction.commit()https://stackoverflow.com/questions/38600754
复制相似问题