2017-05-10 5 views
0

iPhoneバージョンで自動レイアウト制約を変更しようとしています。特性の変化は、サイズクラスによって異なることができます。しかし、縦向きのすべてのiPhoneは、すべてコンパクトな幅と通常の高さです。iPhoneデバイスによって異なる自動レイアウト制約を作成する方法

私は水平に配置された要素を持っていますが、メインビューの上からの距離をデバイスのサイズに応じて変えたいとしたら、どうすればいいですか?

+0

あなたは何らかの形でスーパービューのサイズに比例するよりも複雑ですか?例えばどんな距離にあっても、常に3分の1の距離にありますか? – Tommy

+0

@ Tommy私はiPhone SE上で、要素5を上から、上位のiPhone 6を上から、など15にすることを意味します。 – propstm

答えて

2

自動レイアウトのみのサイズクラスでは、画面サイズまたはデバイスバージョンを指定することはできません。

相対位置決め/サイジングがうまくいかず、iPhone SEで5pt、iPhone 6で15ptなどの位置決めをしたい場合は、コードで行う必要があります。あなたのオプションは以下のとおりです。

  1. 自動レイアウトを使用しないでください...
  2. 変更制約値(定数、乗算器、優先順位など)

あなたが自動でAppleのドキュメントを読んでいる場合レイアウト、適応インターフェイスデザイン、の代わりにインターフェイスデザインを対象とすることがわかります。

+1

私はこの答えに同意します。それが何かを加えるならば、(2)は、あなたがミックスしてマッチさせることができるように、2つのオプションの中で私のお気に入りです。例えば。あなたが望むのは、特定の要素の前のスペースの量を変更し、次にすべてのスペースが通常のルールごとに間隔をあけてサイズが変更されるようにする場合は、すべてのものを制約で設定し、レイアウト。さもなければ自動レイアウトがあなたのためにしているそれらのものさえあなた自身のために実装する必要があります。 – Tommy

1

方法1:あなたは、iPhoneの変化のために異なる定数トップの値を設定するトップ制約の出口を作成し、その一定の値を変更したい場合はプログラムで制約を変更することは

値。

_topConstraint.constant = Conditional code for each device. 

方法2:設定適応制約

例:私は200 =幅固定の高さ= 100、との見解を採取し、水平方向に集中しています。

enter image description here

は、今では、デバイスのサイズごとに比例トップのスペースを与える、いくつかの数学のためのギアアップしてください。

iPhone5画面の上部スペース= 36ptと仮定します。

トータルビュー高さ=ビュートップ+ビューの高さ= 36 + 100 = 136

合計画面の高さ= 568ボトム比= 136分の568 = 4.17

ので、下のレイアウト制約を設定し、追加します乗数は4.17です。 iPhone 7プラスと他のデバイスで enter image description here

enter image description here enter image description hereenter image description hereenter image description hereは、それが自動的にトップを変更します。

関連する問題