我正在做这样的事情:
CABasicAnimation* translateA = [CABasicAnimation animation];
translateA.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
translateA.fillMode = kCAFillModeBoth;
translateA.duration = 1;
CALayer* nextLayer = <some layer...>
[nextLayer addAnimation:translateA forKey:@"position.y"];
newPos = nextLayer.position;
newPos.y += someDelta;
nextLayer.position = newPos;
发生的情况是我看到图层几乎“跳”到它的最终位置,然后我的动画开始了。我的猜测是“几乎跳”实际上是“位置”的原始隐含动画(持续时间非常短)。我还尝试替换位置而不是 position.y 并尝试替换图层中的整个动作字典(只是添加此动画)。但我总是得到相同的结果。
我将如何做才能有效地只看到图层平移 1 秒?