Ios 在CAAnimationGroup中同时设置位置和旋转动画,最终不会更新位置
我试图使用显式动画对Ios 在CAAnimationGroup中同时设置位置和旋转动画,最终不会更新位置,ios,rotation,position,caanimation,Ios,Rotation,Position,Caanimation,我试图使用显式动画对UIView的position和rotation属性设置动画,结果是rotation已成功更新,但视图的position没有更新,尽管我更新了层的position在我将动画添加到视图的层之后,rotation属性设置为其最终值(我想这就是所谓的显式覆盖隐式动画技术?) 这是我的密码: CABasicAnimation *move = [CABasicAnimation animationWithKeyPath:@"position.y"]; move.fromValue =
UIView
的position
和rotation
属性设置动画,结果是rotation
已成功更新,但视图的position
没有更新,尽管我更新了层的position
在我将动画添加到视图的层之后,rotation
属性设置为其最终值(我想这就是所谓的显式覆盖隐式动画技术?)
这是我的密码:
CABasicAnimation *move = [CABasicAnimation animationWithKeyPath:@"position.y"];
move.fromValue = @(self.square.center.y);
move.toValue = @(300);
CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotate.fromValue = @(DEGREES_TO_RADIANS(0));
rotate.toValue = @(DEGREES_TO_RADIANS(45));
CAAnimationGroup *group = [CAAnimationGroup animation];
group.duration = 1.0;
group.animations = @[move, rotate];
self.square.center = CGPointMake(self.square.center.x, 300);
self.square.transform = CGAffineTransformMakeRotation(M_PI/4);
[self.square.layer addAnimation:group forKey:nil];
如果我单独实现位置或旋转动画,代码会执行得很好,并且得到了预期的结果。但当它合并到CAAnimationGroup
中时,位置最终不会更新为最终值。这里有什么想法吗?也许可以试试这个:当然有你的价值观:
[UIView animateWithDuration:1.0f animations:^{
self.square.center = CGPointMake(10, 10);
self.square.transform =CGAffineTransformMakeRotation(90);
}completion:nil];