自動レイアウト:トップレイアウトガイドではなくスーパービューに制約を追加しますか?


112

ストーリーボードのUIViewControllerにUIViewがあり、上端からの距離を表示するスペースに制約を追加したい。

これで、通常の操作をCtrl + ViewControllerのメインビューにドラッグすると、トップレイアウトガイドに設定するオプションのみが表示されます。

これは私にとって問題です。アプリのある時点でメインビューを20-50pxほど上に移動しようとすると、そのビューは移動しません...スーパービューに位置合わせされていないためです。

ストーリーボードでこれを手動で行うにはどうすればよいですか、またはプログラムで追加する必要がありますか?

私はxcode 6を使用しています。


左側のドキュメントアウトラインの正しいエンティティにドラッグアンドドロップできますか?-シーンはこのスクリーンショットのオブジェクト:ptgmedia.pearsoncmg.com/images/chap5_9780672335761/elementLinks/...
ウッドストック

Iveも

回答:


306

制約定数値の右側に矢印があります。クリックするとメニューが表示され、制約を基準にして何を選択するかを選択できます。[ビュー]を選択すると、ビューの上部に固定されます。

ここに画像の説明を入力してください


6
ハレルヤ!彼らがEditor-> Pinメニューを削除したときに何をしようとしていたのか、私にはわかりませんでした。
Jeremy Hicks

4
見たことがないなんて信じられない。驚くばかり。
zumzum

9
私と同じくらい無知な人へのメモ->制約を追加するビューがトップレイアウトガイドの下にない限り、この変更を行うことができない場合があります。トップレイアウトガイドの上にビューがあり、「トップレイアウトガイド」はドロップダウンメニューのオプションではありませんでした。これはおそらく私のような非新人のための "duh"ステートメントです:)
Ryan James

2
それは、それらの小さなXcodeの微妙さについてです。それだけで十分です。:)
2015

私を混乱させただけの簡単な説明:画像に[トップレイアウトガイド]が選択されているにもかかわらず、ビューをデバイスの最上部のようにビューのTOPに固定したい場合は、[ビュー]を選択します。
micnguyen

57

ストーリーボードで目的のビューを強調表示し、Editor > Pin > Top Space to Superviewトップメニューで選択することで、それを実行できるはずです。


これはXCode 7では古くなっています。代わりに@PaulGurovの回答を参照してください。


魅力のように機能します-XCode 6.3
NKorotkov '26 / 06/15

4
Xcode 7のエディターメニューから「ピン」を削除しました。新しいソリューションはありますか?
カイルG

14

TL; DR:Altキーボードのキーを押すと、マージンに制限できます。


また、ピン留めしようとしているビューが、ピン留めしたいビューの直接のサブビューでない場合、提案されたアプローチは実際には有効ではないことも追加できます。ビューの階層がそのようになっていて、イメージビュー(Parallax Image Viewこの場合)をビューコントローラーのビュー(Viewこの場合)に固定するとします。

ここに画像の説明を入力してください

これを行うには、Control+をDragからに変更Parallax Image ViewしますView。これは、デフォルトの選択を示し、上部のレイアウトガイドVertical Spacing to Top Layout Guideに固定するParallax Image Viewために見ることができます。

ここに画像の説明を入力してください

必要なのは、それをビューの上部(マージン)に固定することです。これを行うには、を押して、他の制約セットに切り替える必要があります。Alt

ここに画像の説明を入力してください


非常に役立つヒント。これは実際に私の問題を解決しました。
マチャド

それは私にはうまくいきますが、同時に複数の制約を追加する方法がわかりません。今、私は時間をかけるために一つずつ追加しなければなりません。
Duc Nguyen

3

そこにはすでにたくさんの制約があり、それらを壊すのではなく変更したいだけでした。編集する制約をダブルクリックし、「。Margin」のある項目をクリックすると、その項目を選択して「Relative to Margin」をオフにすることができます。

マージンを基準にして選択してください


これは私がここに来たときに私が探していたものでした!ありがとう
netigger 2016年

1

ダンの答えはうまくいきます。StoryBoardでビューをy <20に設定し、ピンパネルを介して制約を構成すると、topがsuperviewに設定されることを述べたかっただけです。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


0

誤ってビューの高さが0に設定されている場合、垂直スペースから上部へのレイアウトガイドは表示されません。しかし、垂直方向のスペースから下部へのレイアウトガイドが表示されますが、これは2004年頃のApple内の誰かにとっては理にかなっているはずです。


0

上記の答えはどれもうまくいきませんでした。代わりに、ハックを実行して、サブレイアウトのトップとスーパービューのトップをトップレイアウトガイドで設定する必要があります。

  • まず、サブビューの中心をスーパービューで垂直に設定します。
  • 次に、サブビューとスーパービューの中心Y制約をトップ制約に変更します。

あなたは今行ってもいいです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.