さて、私が言ったように、私は以前にこれを行ったので、他のプロジェクトをチェックしたところ、問題が見つかりました。ここに回答を投稿して、興味のある人のために知識を共有します。
問題は、フレームを使用してビューを縮小または拡大することは、これを行う正しい方法ではないことです。
悪い例:
[UIView animateWithDuration: 0.4 delay:0 options: UIViewAnimationCurveEaseInOut animations:^{
self.frame = CGRectMake(frame.origin.x + frame.size.width/2, frame.origin.y + frame.size.height/2, 10, 10);
} completion: nil];
代わりに、変換を使用する必要があります。
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1, 1);
[UIView animateWithDuration: 0.4 delay:0 options: UIViewAnimationCurveEaseInOut animations:^{
self.transform = CGAffineTransformScale(CGAffineTransformIdentity, 0.001, 0.001);
} completion: nil];
上記は、アニメーション目的のみであることを考慮して、ビューを縮小および拡大した後、本来あるべき場所に要素を配置します。
それが役に立てば幸い。