gpt4 book ai didi

iphone - CATransaction是立即的并且忽略过渡时间

转载 作者:行者123 更新时间:2023-12-03 20:47:41 24 4
gpt4 key购买 nike

我不明白为什么这段代码:

CALayer *viewLayer = [aView layer];
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:10.0f]
forKey:kCATransactionAnimationDuration];
viewLayer.position = CGPointMake(200.0f, 200.0f);
viewLayer.position = CGPointMake(320.0f, 480.0f);

[CATransaction commit];

移动 View ,但移动不是动画的(移动是立即的)。 aView 是 UIView 中的 UIImageView。

最佳答案

与 View 关联的图层禁用隐式操作。 View 始终是其自己层的委托(delegate),并且它实现 -actionForKey: 来禁用隐式动画并仅在 UIView 动画 block 内添加动画。最好的选择是简单地使用显式 CABasicAnimations。假设您想从第一个点到第二个点制作动画,您可以使用类似的东西

CALayer *layer = aView.layer;

layer.position = CGPointMake(320, 480); // final position
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position"];
anim.fromValue = [NSValue valueWithCGPoint:CGPointMake(200, 200)];
anim.toValue = [NSValue valueWithCGPoint:layer.position]; // I believe this line is optional, it should default to current position
[layer addAnimation:anim forKey:@"position"];

关于iphone - CATransaction是立即的并且忽略过渡时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4223693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com