問題タブ [layoutmargins]

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.

0 投票する
1 に答える
23 参照

swift - サブビューを UINavigationBar の大きなタイトルに左揃えにする

UINavigationController のルートとして UIViewController があり、次のように大きなタイトルの設定を設定しましたnavigationController?.navigationBar.prefersLargeTitles = true

私の目標は、ビューの左側をナビゲーション タイトルの左側に揃えることですが、値をハード コーディングするのではなく、動的に行いたいと考えています。望ましい最終結果は次のとおりです。

UINavigationBar の配置

を使用して、ナビゲーションバーのタイトルの左または x 位置を取得しようとしています

let navigationLeftX = navigationController!.navigationBar.layoutMargins.left

この値も出力して、値を取得しました8.0

それで、私はこれを作成したビューの x 位置として設定する必要があると考えましたviewWillAppear

結果は近いですが、まだかなり外れています。

UINavigationController UINavigationBar サブビューとの配置

余白xの値を2倍にしたら、ちゃんと揃うようです

UINavigationBar 配置 Swift

したがって、8 ポイントの左マージンとは別に、追加の 8 ポイントのパディングがあり、論理的に考えたところ、ナビゲーションの左マージンを 0 に設定すると、8 ポイントのパディングが表示されるはずであると結論付けようとしていました。 :

しかし驚いたことに、実際にはパディングなしで画面の左端にありました。

UINavigationBar タイトル パディング マージン アラインメント

誰かがこの動作を説明し、おそらくビューをナビゲーション バーのタイトルに動的に揃える最良の方法を共有できますか?

前もって感謝します