静的セルを含むtableViewがあります。セルには、それを完全に埋めるImageViewが含まれます。そして、もう1つ小さなImageViewsがあります。このImageViewsを制約付きで配置します。制約のサイズ変更について質問があります。 if/elseループをプログラミングせずに、デバイスサイズごとに異なる制約定数を設定するにはどうすればよいですか。ストーリーボードに設定する方法はありますか?たとえば、10の定数値を使用した親レイアウトへの主要な制約があります。これはiPhone 5画面では問題ありませんが、iPhone 6/6/6画面では10を超える必要があります。
iPhone5の自動レイアウト
iPhone6自動レイアウト
私のジュニア開発者が私に同じ質問をすると、当時の制約のためにどのようにiPhoneSEとiPhone6を区別することができるかという質問がありました
if device == iPhoneSE {
constant = 44
} else if device == iPhone6 {
constant = 52
}
この問題を克服するために、ライブラリ レイアウトヘルパー を作成したため、1行のコードを記述せずに各デバイスの制約を更新できます。
非常に簡単。 Storyboardで異なるサイズのクラスの定数値を変更できます。私はあなたにそれを理解できるようになるいくつかのステップを与えています。
トリッキーな部分になりました。定数を選択した後、属性インスペクターで、定数の値を確認できます。すぐ横に、「定数」の左側にPLUS(+)記号があります。
それをクリックして、必要なサイズクラスを選択します。ここでは、iPadのサイズに対して、通常の高さ、通常の幅を選択しました。
次に、新しい値を指定します。したがって、通常は値61である定数は、iPadサイズクラスのサイズクラスでレンダリングされると10として機能します。
ご覧のとおり、同じ定数は異なるサイズのクラスに対応するランタイムで異なる値を持ちます。
私の説明がお役に立てば幸いです。
最後に、私の場合に有効な解決策を見つけました。
その結果、私は本当に適応性のある自動レイアウトを持っています