1

達成したいことを示す画像

ビューをある位置から新しい位置にアニメーションで移動したい。ビューのレイヤー位置を更新すると、ビューはアニメーションで新しい位置に移動すると思いますが、implicit animationアニメーションはありません。なぜですか?

- (IBAction)startAnimation:(id)sender {
    CGPoint position = self.imageView.layer.position;
    position.y += 90;
    self.imageView.layer.position = position;
}
4

1 に答える 1

6

暗黙的なアニメーションは、ビューをバックアップするレイヤーではなく、スタンドアロン レイヤーに対してのみ発生します。位置を明示的にアニメーション化する必要があります。位置の CABasicAnimation を作成してレイヤーに追加するか、UIView アニメーションを使用してビューの center プロパティをアニメーション化することで、これを行うことができます。

エクスプリシット アニメーションの作成

CABasicAnimation *move = [CABasicAnimation animationWithKeyPath:@"position"];
move.toValue = [NSValue valueWithCGPoint:newPoint];
move.duration = 0.3;
[self.imageView.layer addAnimation:move forKey:@"myMoveAnimation"];

UIView アニメーションの使用

[UIView animateWithDuration:0.3 animations:^{
    self.imageView.center = newCenter;
}];
于 2012-10-18T17:47:38.560 に答える