CGAffineTransformMakeScaleで作成されたスケーリング変換を使用して、回転をいつでもCGAffineTransformConcatできます。
別のボタンを押す効果に興味がある場合は、私も何かクールなものが必要で、次のように「ドキドキ」アニメーションに落ち着きました。
BOOL keepThrobbing = NO;
-(void)buttonThrob:(CGFloat)inset {
UIViewAnimationOptions opts = UIViewAnimationOptionBeginFromCurrentState|UIViewAnimationOptionAllowUserInteraction;
[UIView animateWithDuration:0.2 delay:0.0 options:opts animations:^{
self.button.frame = CGRectInset(self.button.frame, inset, inset);
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.2 delay:0.0 options:opts animations:^{
self.button.frame = CGRectInset(self.button.frame, -inset, -inset);
} completion:^(BOOL finished) {
if (finished && keepThrobbing) {
[self buttonThrob:inset];
}
}];
}];
}
このように呼んでください:
keepThrobbing = YES;
[self buttonThrob:10.0]; // expand/shrink by 10px in x and y