マルチタスクに入るときにUISplitViewControllerdisplayModeプロパティを変更しますか?(iOS 14)

Thanks_muffin

iPadマルチタスク(つまり、別のアプリが画面に表示され、アプリと並べて表示される)がアクティブになったときを検出するにはどうすればよいですか?

私はUISplitViewController以下のように設定された以下のパラメータを持つを持っています:

preferredDisplayMode = .twoBesideSecondary
preferredSplitBehavior = .tile
setViewController(SidebarVC(), for: .primary)
setViewController(SuppVC(), for: .supplementary)
setViewController(SecondaryVC(), for: .secondary)

横向きでは、3列すべてに十分なスペースがあります(.primary, .supplementary, .secondary)。ポートレートやマルチタスクの場合、画面の幅が狭くなり、3列目(.secondary)が非常に狭い幅に押しつぶされます。水平サイズのクラスは通常のままなので、それを使用して検出することはできません。(横サイズのクラスがコンパクトになると、私のUISplitViewController.compactショーと動作はうまくいきます)。

UISplitViewController.displayModeプロパティを.twoDisplaceSecondary画面が狭い場合に変更したいのですが、水平サイズのクラスは通常のままです(つまり、縦向きの場合、または別のアプリがマルチタスクの場合)。これにより、3番目の列を押しつぶすのではなく、画面外に押し出す(移動させる)ことができます。

私が探している正確な動作の完璧な例は、iOS 14のiPadのContactsアプリです。これは、displayModeがのように見える3列のレイアウトを使用しています.tileアプリが横向きで全画面表示になると、3つの列すべてが表示され、押しつぶされないように十分なスペースがあります。ただし、別のアプリをマルチタスクに移行すると(したがって、連絡先アプリの幅は狭くなりますが、水平サイズのクラスは通常のままです)、displayModeがに変更されたように見え.twoDisplaceSecondary、3番目の列が押しつぶされるのではなく画面外に押し出されます。

viewWillTransitionToSize()メソッドを使用して向きの変更を管理できると思いますが、アプリが狭いことを検出するデリゲートやその他の方法を見つけることができませんでしたが.regular、Contactsアプリのように水平サイズのクラスでもできるようです。 。

私が参照しているものを示すスクリーンショット: トリプルコラム、全画面幅の連絡先アプリ マルチタスクの連絡先アプリ、3列目、置き換え

2番目のスクリーンショットでは、十分なスペースがない場合、3番目の列が押しつぶされるのではなく移動していることがわかります。

Thanks_muffin

私はそれがBOTHに設定することが重要だと考え出した.preferredDisplayMode.preferredSplitBehaviorビュー遷移を。どちらか一方を設定すると、多くの奇妙な動作が発生します。

私はこのような場合のために作品を考え出しどのような将来の読者のために設定されるpreferredDisplayMode = .twoBesideSecondarypreferredSplitBehavior = .tile、画面は十分な広さであるときは、設定preferredDisplayMode = .oneBesideSecondarypreferredSplitBehavior = .displace画面が狭い場合。view.frame.size.width <1194かどうかをチェックする関数を使用して、画面が全角かどうかを判断しました。向きを使用すると、アプリが別のアプリと並んでいる場合にのみ問題が発生するためです。私は、これを呼び出すviewDidLoadだけでなく、としてviewWillTransition(toSize:)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

minSdkVersionを10から14に変更する場合のベストプラクティス

EmscriptenとC ++ 14

C ++ 14の標準要件をPOCOベースのプロジェクトからC ++ 17に変更する方法

About iOS14 of PencilKit

Pythonforループ; 入力を14行に出力します。乱数

ホストアプリが閉じたときにウィジェットiOS14でCoreDataからフェッチデータをリロードする方法

C ++ 1y / C ++ 14:静的constexpr配列を非型テンプレートパラメーターパックに変換しますか?

iOS14でステータスバーを横向きに表示

IntelliJ IDEA 14:プロジェクトをTomcatにデプロイするときにテストをスキップする方法

iOS 14 / UIテストDatePicker

未使用の関数は、C ++ 14に従って副作用のある変数テンプレートをインスタンス化できますか?

iPhoneがロックされているときにiOS14ウィジェットコンテンツを非表示にする方法は?

14行ごとに情報を変更するpython

Vaadin 14-他の入力フィールドと同様に、ファイルのアップロード時にエラーを表示します

C ++ 14標準レイアウトタイプはフィールドに「alignas」を使用できますか?

Vaadin14アップロード-ユーザーがファイル選択ダイアログでキャンセルボタンをクリックしたときにイベントをキャッチする方法

Slackware14を使用してSSDにパーティションテーブルを作成できません

qmakeプロジェクトをビルドするときにC ++ 14機能を使用するにはどうすればよいですか?

プロジェクトの作成後にndk設定をデフォルトのC ++ツールチェーンからC ++ 14に変更するにはどうすればよいですか?

C ++ 14メタプログラミング:コンパイル/初期化時にタイプのリストを自動的に作成します

シェルスクリプトで$ 14を使用して14番目の位置パラメータにアクセスするにはどうすればよいですか?

Intellij Idea14。マウスを動かすとすべてのツールチップが消えます

UIテスト(Xcode 12、iOS14)を使用してプッシュ通知にアクセスするにはどうすればよいですか?

効果的なJavaアイテム14:APIを変更せずに表現を変更することはできません

IntelliJ 14でJARファイルをビルドする:jarfileにアクセスできませんか?

iOS14-UIDatePicker()のテキストカラーを変更する方法

SwiftUI 2.0 iOS14でDatePickerのテキスト配置を変更する

Dell Vostro 14 5480 非常に少量

Keras:入力配列を形状(14,1)から形状(14)にブロードキャストできませんでした

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    Chromeウェブアプリのウェブビューの高さの問題

  3. 3

    Railsで宝石のレイアウトを使用するにはどうすればよいですか?

  4. 4

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  5. 5

    Ansibleで複数行のシェルスクリプトを実行する方法

  6. 6

    アンドロイド9 - キーストア例外android.os.ServiceSpecificException

  7. 7

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  8. 8

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  9. 9

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  10. 10

    Python / SciPyのピーク検出アルゴリズム

  11. 11

    Swiftのブロックのパラメーターに関するドキュメントのマークアップ形式は何ですか?

  12. 12

    Windows 7では、一部のプログラムは「ビジュアルテーマを無効にする」レジストリ設定を行いませんか?

  13. 13

    Google Playストア:アプリページにリーダーボードと実績のアイコン/バッジが表示されない

  14. 14

    ezdxf pythonパッケージを使用して既存のdxfファイルを変更するにはどうすればよいですか?

  15. 15

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  16. 16

    MySQLでJSON_LENGTHとJSON_EXTRACTを組み合わせる方法は?

  17. 17

    Get-ADGroupMember:このリクエストのサイズ制限を超えました

  18. 18

    ZScalerと証明書の問題により、Dockerを使用できません

  19. 19

    Dynamics365からローカルファイルにアクセスできます。ローカルリソースは許可されていません

  20. 20

    Eclipseプロジェクトをエクスポートすると、不適切なテクスチャリングとクラッシュが発生します。

  21. 21

    CSSのみを使用して三角形のアニメーションを作成する方法

ホットタグ

アーカイブ