の変換をUIButton
withCGAffineTransformRotate
でアニメーション化しようとしていますが、アニメーションを適切に実行している間、実行する前にボタンを約 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 を使用して作成されており、アニメーションの長さを長く設定したり、遅延を追加したりしても、すぐにシフトが発生します。