web-dev-qa-db-ja.com

xcode 6のユニバーサルストーリーボードを使用して、iphoneとipadの両方にいくつかのパディングを使用して、uiviewの幅を親ビューの幅に合わせるにはどうすればよいですか?

私はxcode6で制約とユニバーサルストーリーボードを学んでいて、ここで少し苦労しています。

ユニバーサルストーリーボードを使用して、私の目標は、iPadシミュレーター(768 x 1024)とiPhone 4シミュレーター(_ x _)に完全にフィットし、左側に50ピクセルのパディングまたはマージンがあるUIViewを作成することです。と右側。

目標は次のようになります。

enter image description here

ユニバーサルストーリーボードと自動レイアウトを使用していますが、プレビューで次の結果が得られます enter image description here

これまでに行ったことは、UIViewをUniversal Storyboardエディターにドラッグし、iPad画面全体に広がるwidth(768)を指定してから、width = 768、height = 200の制約、および中央に制約を適用することです。水平方向に拘束し、垂直方向に中央に配置します。

結果を観察する:

IPadの画面は幅を完全に埋めます。ただし、iPhoneの画面(画像1)をよく見ると、UIView(緑色)の幅が親に表示されません(幅が親の幅よりはるかに大きい)

質問:

問題1)ユニバーサルストーリーボードを使用して、iPadとiPhoneの両方で親UIViewまで幅を埋めるUIViewを作成する方法はありますか?

問題2)問題1が達成可能な場合、緑色のUIViewに左右にパディングまたはマージンを追加するにはどうすればよいですか?

ありがとう、そしてどんな提案、コメント、または意見でもありがたいです。

10
xiaowoo

width制約を使用する代わりに、Leading SpaceおよびTrailing Space制約を確認する必要があります。

緑のUIViewからそのスーパービューにLeading Space制約を追加し、その制約の定数を必要なマージン(50)に設定してから、Trailing Spaceに対して同じことを行います。 heightおよびcenter vertically制約はそのままにしておく必要がありますが、center horizontallyおよびTrailing Space制約はすでにビューの中央揃えを処理するため、Leading Space制約を削除できます。

最終的には次のようになります。

constraint layout and previewUIView constraint setup

11
Mike S