gpt4 book ai didi

iphone - UIView层的animationForKey : is always nil

转载 作者:行者123 更新时间:2023-12-03 21:07:24 26 4
gpt4 key购买 nike

我有一个相当奇怪的问题。

我有一个正在使用 CAKeyframeAnimation 制作动画的 View 。然而,动画按预期工作,一旦触发委托(delegate)的 animationDidStop:finished 方法,与 View 关联的图层在使用图层的 animationForKey 检查时始终返回 nil: 方法。

这是问题的说明:

// This is in the view controller
- (void) doAnimation:(id)sender {
CAKeyframeAnimation *positionAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

[positionAnimation setValues:arrayOfPoint];
[positionAnimation setDuration:0.5];
// ViewController is the delegate and has the animationDidStop:finished: method
positionAnimation.delegate = self;
[positionAnimation setValue:@"I am Text" forKeyPath:@"positionAnimation"];

[someView.layer addAnimation:positionAnimation forKey:@"positionAnimation"];
someView.layer.position = newPosition;
}

在 Controller 的其他地方,我定义了 animationDidStop:finished: 方法,如下所示:

- (void) animationDidStop:(CAAnimation *)anim finished:(BOOL)flag {

NSArray *array = [someView.layer animationKeys];
NSString *stringValue = [anim valueForKey:@"positionAnimation"];

NSLog(@"valueForKey: %@", stringValue);
// Prints 'I am Text'

if(anim == [someView.layer animationForKey:@"positionAnimation"]) {
//THIS NEVER GET CALLED
}
}

为什么 if block 的计算结果永远不会为 True?为什么[someView.layeranimationForKey:@"positionAnimation"]总是nil?此外,stringValue 具有正确的数据,但数组也是 nil

最佳答案

我只能猜测,但也许当调用方法 animationDidStop:finished: 时,您的动画已经从图层中删除了。所以 [someView.layeranimationForKey:@"positionAnimation"] 为零。

希望这会有所帮助

关于iphone - UIView层的animationForKey : is always nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646070/

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