問題タブ [viewwilltransitiontosize]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - Xamarin.iOS: ViewWillTransitionToSize でステータス バーの高さを決定する方法
次を含むビューがあります。
- a 、マップ上に
MKMapView
いくつかのアイテムを表示する - に
UITableView
埋め込まれ、リスト内のアイテムUIView
を表示します
ユーザーはセパレーターを移動して、マップまたはリストを表示できる必要があります。
これはうまく機能しますが、ユーザーが画面を回転させた後に問題が発生します。この場合、リストが正しく表示されなくなります。
リストの位置 は、上マージンの制約を指定することで設定されます。ステータスバーの高さUIView
を初めて知ったとき()。UIApplication.SharedApplication.StatusBarFrame.Height
しかし、回転後、この制約を再計算する必要があります。このために、 の制約を再計算してみますViewWillTransitionToSize()
。
私の問題は、 への呼び出し中に期待値を取得できないことです ViewWillTransitionToSize()
: の「古い」値がStatusBarFrame.Height
設定されています。
ステータスバーのステータスも取得しようとし
ましUIApplication.SharedApplication.StatusBarHidden
たが、問題は同じです。
回転中に正しいステータスバーの高さを取得できる別の方法はありますか?
swift - 複数のビューコントローラーがある場合にランドスケープへの移行を検出する方法
ビュー コントローラーが 4 つしかない小さなアプリがあり、ユーザーが横向きに/から横向きに移行するときにレイアウトを変更したいと考えています。ランドスケープをチェックする方法を見つけましたが、関数は1つのviewControllerクラスに存在し、viewWillTransitionが発生したときに他のviewControllerにアクションを実行させる方法が明確ではありません. そのオーバーライド関数のバージョンを各View Controllerクラスに配置して、それに固有のことを行う必要がありますか? セグエの後に両方のクラスにオーバーライドを入れようとしたとき、両方が起動し、「正しい方法」のように感じなかったので、専門家に尋ねたいと思いました。
アプリの起動時に以下のコードを使用して、ランドスケープにあるかどうかのグローバル bool を設定し、viewWillTransition を使用して変更を検出します。
すべての
ios - サイズ (forChildContentContainer コンテナー: UIContentContainer、withParentContainerSize 親サイズ: CGSize) は機能しません
アップルは次のように述べています。
「コンテナ ビュー コントローラは、このメソッドを使用して子ビュー コントローラのサイズを返します。UIKit は、ビュー コントローラの viewWillTransition(to:with:) メソッドのデフォルト実装の一部としてメソッドを呼び出します」
そして、私が初めてプログラムを起動したとき:
完全な親 vc ビューのサイズの子ビュー コントローラーのビューが (100, 100) ではありません。それで、それをオーバーライドする本当のポイントは何ですか? (viewdidload の最初のロード) で子 vc ビューのフレームを再定義してから、preferredContentSizeDidChange 関数で特性の変更に対応できるのですか?
ios - UICollectionView: デバイスを回転させてもセルを表示したままにする
何百ものセルを含む UICollectionView があります。特定のセルのセットまでスクロールしてデバイスを回転させると、ほとんどの場合、以前に表示されていたセルが非表示になります (contentOffset が間違っています)。
これは、セルを表示し続けるために行うことです。
別の ViewController がアクティブなときにデバイスが回転し、UICollectionView を保持している ViewController に戻ると、オフセットが再び間違っています。これが私がすることです:
これは多少機能しますが、ハッキーに思えます。これを達成するためのよりエレガントなソリューションが必要ですか?