我正在使用此代码:
[UIView animateWithDuration:ANIMATION_DURATION_SLOW
delay:0
usingSpringWithDamping:0.4
initialSpringVelocity:5.0
options:0
animations:^{
_button.transform = CGAffineTransformMakeRotation(-M_PI_4);
}
completion:nil];
但是,按钮仅在第一次旋转。无论我多少次调用此方法,它都不会再次旋转。
答案 0 :(得分:3)
设置旋转变换不会添加到上一个变换,它会替换它,因此您需要记住最后一次点击时的位置。一个快速的方法是静态变量。
static tapCount = 0;
tapCount++;
[UIView animateWithDuration:ANIMATION_DURATION_SLOW
delay:0
usingSpringWithDamping:0.4
initialSpringVelocity:5.0
options:0
animations:^{
_button.transform = CGAffineTransformMakeRotation(-M_PI_4 * tapCount);
}
completion:nil];
答案 1 :(得分:1)
这是因为你需要改变角度。 考虑:
-(CGFloat)angle{
if (!_angle) {
_angle = -M_PI_4;
}
_angle += -M_PI_4;
return _angle;
}