1. ホーム
  2. ios

iOS: デバイスが回転した後に関数を実行する方法 (Swift)

2023-08-11 19:16:34

質問

私は自動レイアウトを使用していない1つのUIViewを持っており、いくつかのコンポーネントは、メインビューからのXおよびY座標のそれらのパーセントに基づいて表示されています。

以前は、didRotateFromInterfaceOrientation でそれらの位置を更新する関数を実行していましたが、これは現在 iOS8 で非推奨となっていることがわかりました。

viewWillTransitionToSizeを見てみましたが、それは奇妙な結果を与えており、viewDidtransitionToSize関数はないようです。

デバイスの回転の後に関数を実行する簡単な方法(Swiftで)はありますか?

どのように解決するのですか?

この viewWillTransitionToSize デリゲートメソッドが呼び出される際には UIViewControllerTransitionCoordinator 準拠のオブジェクトで呼び出されます。プロトコルが宣言するメソッドは animateAlongsideTransition(_:animation, completion:) . これを利用して、遷移が完了した後にコードを実行させることができます。

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)
    coordinator.animate(alongsideTransition: nil) { _ in
        // Your code here
    }
}