3

編集:上にボタンの列があるプロジェクトがあります。通常、ボタンはコンパクト ビューで 5 つ、通常ビューで 6 つです。アプリが 1/3 Split View で実行されているときにボタンを削除したいと考えています。アプリの幅を決定するにはどうすればよいですか?

このコードを使用して、分割ビュー (マルチタスク) のときのアプリの現在の幅を決定しています。

    override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {

        // works but it's deprecated:
        let currentWidth = UIScreen.mainScreen().applicationFrame.size.width

        print(currentWidth)
    }

動作しますが、残念ながら applicationFrame は iOS 9 で非推奨になっているため、これに置き換えようとしています。

    override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {

        // gives you the width of the screen not the width of the app:
        let currentWidth = UIScreen.mainScreen().bounds.size.width

        print(currentWidth)
    }

問題は、最初のステートメントがアプリの有効な幅を提供し、それで問題ないことです。代わりに、2 番目のステートメントが画面の幅を提供するため、それを使用してアプリの実際の幅を学習することはできません。分割ビューで。

この廃止されたステートメントを置き換えるために必要なコードを誰かが知っていますか?

let currentWidth = UIScreen.mainScreen().applicationFrame.size.width // deprecated
4

3 に答える 3

3

@TheValyreanGroup の回答は、サイズをいじる間にビュー コントローラーが存在しない場合に機能します。その可能性が存在する場合は、使用できるはずですself.view.window.frame.size.width

于 2016-07-28T15:30:09.580 に答える