我有一个CAReplicatorLayer按照预期复制其子图层,但是我想要关闭动画的内置持续时间。换句话说,我希望看到复制基础层的瞬时结果,而不是Apple隐含指定的持续时间。
这是复制代码,由[CATransaction ...]包装器括起来,我觉得应该可以工作但不能。复制仍然需要很小但有限(+/- 0.25秒)的时间。
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:0.0f]
forKey:kCATransactionAnimationDuration];
[CATransaction setAnimationDuration:0.0];
replicator.instanceCount = 10;
replicator.instanceRedOffset = 0.1;
replicator.instanceTransform = CATransform3DMakeTranslation(x, y, 0);
[CATransaction commit];
有什么想法? TIA 霍华德
我进行了更广泛的搜索,并提出了以下内容,遗憾的是仍无效。
NSMutableDictionary* replicatorActions = [[NSMutableDictionary alloc]
initWithObjectsAndKeys:
[NSNull null], @"instanceRedOffset",
[NSNull null], @"instanceTransform",
nil];
replicator.actions = replicatorActions;
[replicatorActions release];
答案 0 :(得分:2)
这对我有用:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions];
replicatorLayer.instanceCount += 4;
[CATransaction commit];