私はswift
アプリをデザインしています。写真、地図、コンテンツはすべてUITableView
ヘッダーに表示されています。iphone 5とiphone 6でアプリを実行しているときに、制約によってレイアウトが異なるのはなぜですか?
私はiphone 5でアプリを実行すると、それは次のようになります。
黄色のフィールドには、次の制約があり、テキストビューである:
と:
私はiphone 6上でそれを実行したときにこれは、しかし、iphone 5に正常に見える、私は以下を参照してください。
これら二つの見解が異なる理由を私は理解していません。基本的にはデータとヘッダビューを(例えば、ユーザ名、テキスト、写真を埋める)移入
defineHeaderView()
:
さて、私のコードでは、viewDidLoad()
に私は、メソッドの呼び出しを持っています。
:storyboard
で
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
sizeHeaderToFit()
}
func sizeHeaderToFit() {
let headerView = myTable.tableHeaderView!
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
myTable.tableHeaderView = headerView
}
を私はUITableView
内部のビューとしてheaderviewを定義します。
ビューを行い、なぜあなたは私を説明することができますどちらの画面でも違いますか?ここでは、より優れた洞察力を与えること
は、他の制約です:
地図:
、ここで背景写真:
が持っています以下の制約:
私はあなたのimageViewsに問題があると推測しています。 iPhone 5の画面はより薄く、画像や拘束のサイズに応じて(また、clipSubviewsがtrue/falseに設定されている場合)、画像は大きく異なって見えます。 – PeejWeej
異なるデバイスのビュー階層をデバッグして、実際のフレーム/制約が何であるかを確認してください。 – PeejWeej
ビュー名やその他の制約に関する情報が不十分です。だから、これは単なる仮定です: ビューの高さ(黄色のもの)の制約は "より大きいか等しいか"によって関連しています。 2番目の制約に従えば、ビューの上辺は親のトップの644ポイント下にある必要があります。これは静的な値です。したがって、さまざまなサイズ(高さ)のデバイスでは、視界は高さが伸びます。 –