我有这段疯狂的代码。如何使用Core Animation为此设置动画,以便减少代码?我发现some code用于做“摇摆”动画,但那是3D,我只是希望视图左右移动,我不想动画它在侧面弹跳。
[UIView animateWithDuration:0.1f
animations:^{
CGRect frame = tableView.frame;
frame.origin.x -= 4;
tableView.frame = frame;
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.1f
animations:^{
CGRect frame = tableView.frame;
frame.origin.x += 4;
tableView.frame = frame;
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.1f
animations:^{
CGRect frame = tableView.frame;
frame.origin.x -= 4;
tableView.frame = frame;
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.1f
animations:^{
CGRect frame = tableView.frame;
frame.origin.x = 0;
tableView.frame = frame;
} completion:^(BOOL finished) {
// Nothing
}
];
}
];
}
];
}
];
答案 0 :(得分:8)
我想跟进这个问题以防万一有人偶然发现它。我现在正在使用关键帧:
-(void)wiggleView {
CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
animation.keyPath = @"position.x";
animation.values = @[ @0, @8, @-8, @4, @0 ];
animation.keyTimes = @[ @0, @(1 / 6.0), @(3 / 6.0), @(5 / 6.0), @1 ];
animation.duration = 0.4;
animation.additive = YES;
[self.layer addAnimation:animation forKey:@"wiggle"];
}
答案 1 :(得分:0)
This question是一种执行重复动画动画的非常简洁的方法。我用它进行旋转摆动,但你可以应用任何转换,在你的情况下,转换