动画:如何动画使用层的图?(animation: how to animate a view usi

2019-10-17 08:22发布

图像显示我想实现什么

我想从一个位置移动animately着眼于新的现在的位置。 如果更新视图层的位置,我认为视图将animately移动到新位置,这是implicit animation我猜,但没有动画,为什么呢?

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

Answer 1:

隐式动画仅发生于独立层,而不是层备份视图。 您需要明确动画的位置。 您可以通过创建位置CABasicAnimation并把它添加到层或使用的UIView动画以动画视图中心财产做。

创建一个明确的动画

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;
}];


文章来源: animation: how to animate a view using layer?