【Swift】presentViewControllerでViewControllerの表示の動きがおかしくなる

presentViewControllerでViewControllerの表示の動きがおかしくなる

presentViewController、Swift3からはpresentを使ってViewControllerを表示したところ、すごくおかしな動きになってしまいました。左上から画面自体がギューンと拡大してくる感じ

動画ではformSheetでの表示ですが、全画面表示にする場合でも同様です。iPhoneでも同様の動きをします

ただ、起動してすぐは問題なく、ある操作をした後におかしくなります。アプリ「せかいパレット」だと、カメラを使って色を取得した後におかしくなります。となると、色を取得する処理のどこかでおかしな処理をしてしまっていることになります。というわけで、1つ1つ処理を追っかけて行ったところ原因が判明しました

UIView.beginAnimationsを呼び出しているのに、commitAnimationsをちゃんと呼び出していないのが原因だったようです

UIView.beginAnimations(nil, context: nil)
//アニメーションの処理
UIView.commitAnimations() // ←これが抜けてた!

厳密に言うと、UIView.commitAnimationsを書き忘れるのではなく、UIView.beginAnimationsをなぜか2回書いていたためおかしくなっていたようです

ネットで探しても情報がなかったので、こんなミスをする人はあまりいないようですね

タイトルとURLをコピーしました