1

の変換をUIButtonwithCGAffineTransformRotateでアニメーション化しようとしていますが、アニメーションを適切に実行している間、実行する前にボタンを約 15 ピクセル下と左にシフトします。アニメーション化された変換を実行するコードは次のとおりです。

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone
                 animations:^{
                     self.addCloseButton.transform = CGAffineTransformRotate(self.addCloseButton.transform, degreesToRadians(45));
                 }
                 completion:nil];

変換を逆にすると、アニメーション化する前に元の位置に戻すことを除いて同じことが行われます (上に 15 ピクセル、右に 15 ピクセル)。次のコードでそれを行います。

[UIView animateWithDuration:0.5 delay:0.0 options:UIViewAnimationOptionTransitionNone
                 animations:^{
                     self.addCloseButton.transform = CGAffineTransformIdentity;
                 }
                 completion:nil];

このシフトはなぜ起こるのでしょうか?このボタンは Interface Builder を使用して作成されており、アニメーションの長さを長く設定したり、遅延を追加したりしても、すぐにシフトが発生します。

4

2 に答える 2

1

私はそれを理解しました:変換を使用しようとすると、xibで「自動レイアウトを使用」を選択すると(自動制約が多数追加されます)、混乱することがわかりました。オフにすると問題が解決しました。

于 2012-10-22T02:27:54.480 に答える