カスタムUIViewがあります。2つの長方形のUIBezierPathを初期化し、drawRectではこれらの2つのパスを単純に埋めます。
このビューはボタンに配置されます。ボタンがクリックされると、animateWithDurationブロック内でボタンに回転が適用されます。
icon.transform = CGAffineTransformMakeRotation(M_PI*-0.25);
これはうまくいきます。
ボタンをもう一度クリックすると、ビューを元の方向に回転させようとしています(回転を逆にします)。私が試してみました:
icon.transform = CGAffineTransformInvert(icon.transform);
icon.transform = CGAffineTransformMakeRotation(M_PI*0.25);
icon.transform = CGAffineTransformIdentity;
...および他の多くのバリエーションがありますが、どれも機能していないようです。代わりに、ビューが表示されなくなるまでビューが歪んでいます。場合によっては、最初の変換を再適用すると元に戻りますが、他の反転では元に戻りません。
私は何が間違っているのですか?