快把我逼疯了!我正在开发一个绘图应用程序。假设我正在处理一个名为sheet的UIView
。
我正在向这个视图([sheet.layer addSublayer:...]
)添加一些子层,然后我想要绘制它们。为此,我创建了一个CGImageRef
并将其放入层的contents
中。但它是动画的,我不想那样。
我什么都试过了:
removeAnimationForKey:
removeAllAnimations
delegate
[CATransaction setDisableAnimations:YES]
的操作
看起来是对的。我不明白为什么这一层仍然是动画;_;
我做错了什么吗?有什么秘密的方法吗?
发布于 2016-01-22 16:00:51
Swift
CATransaction.begin()
CATransaction.setDisableActions(true)
// change layer properties that you don't want to animate
CATransaction.commit()
发布于 2011-05-02 04:59:22
您必须通过将代码包装在CATransaction中来显式禁用动画
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
layer.content = someImageRef;
[CATransaction commit];
发布于 2011-11-03 14:29:16
另一种方式:
下面是代码:
// disable animation of container
sheet.layer.actions = [NSDictionary dictionaryWithObject:[NSNull null]
forKey:@"sublayers"];
// disable animation of each sublayer
sublayer.layer.actions = [NSDictionary dictionaryWithObject:[NSNull null]
forKey:@"content"];
// maybe, you'll also have to disable "onOrderIn"-action of each sublayer.
https://stackoverflow.com/questions/5833488
复制相似问题