5

ねえ、私はこのコードスニペットを持っています(期間は.5、金額は1.5です)

CABasicAnimation *grow = [CABasicAnimation animationWithKeyPath:@"transform"];
grow.duration = duration;
grow.repeatCount = 0;
grow.removedOnCompletion = NO;
grow.autoreverses = NO;
grow.fromValue = [NSValue valueWithCATransform3D:CATransform3DScale(self.layer.transform, 1.0, 1.0, 1.0)];
grow.toValue = [NSValue valueWithCATransform3D:CATransform3DScale(self.layer.transform, amount, amount, amount)];
grow.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[self.layer addAnimation:grow forKey:@"grow"];

ただし、これを再生すると、UIViewは適切に拡大しますが、その後、開始値にスナップバックします。「removedOnCompletion」がこれを防ぐはずだと思いましたか?

4

1 に答える 1

22

私も指定する必要があったようです:

  grow.fillMode = kCAFillModeForwards;

図に行きます。今すぐ動作します:)

于 2011-03-15T23:00:59.867 に答える