Xcode 5でsuperviewにスペーシングコンストレイントを追加する
質問
私は Xcode 5 で iOS アプリを構築していますが、レイアウト制約を追加するのに苦労しています。Xcode 4.x では、任意の UI 要素にコンテナー (スーパー ビュー) に先行/後続/上部/下部のスペースを追加することだけができました。今、私はこのオプションを持っているだけです。
テキスト ビューに "bottom space to superview" 制約を追加したいと思います。それは "spacing to nearest neighbor" と言いますが、私は "nearest neighbor" への制約を作成したくありません。テキストビューの下に他のオブジェクトがない場合は、コンテナに制約が正しく追加されます。しかし、何かを変更しようとすると、すべてが台無しになります。すべてのビューを別の場所に移動して、それから制約を追加し、それから他のビューを移動して戻す必要があります。テキストビューとUI要素(この場合はボタン)の間に制約を追加しても、うまくいきません(すべてが正しく見える:ボタンにはスーパービューの底への制約があり、テキストビューにはボタンとの垂直方向の間隔制約があり、矛盾する制約がありません)。UI要素は、異なる(3.5インチ)画面の向きで、画面境界から外れて表示されます。Interface Builderにバグがあるのでしょうか、それとも私が何かを見逃しているのでしょうか?すべてを正しく設定しても、インターフェイス・ビルダーの画面のサイズを変更すると、コントロールは境界から外れているように見えますが、シミュレータやデバイスでは3.5インチで正しく表示されます。Xcode 5 の新しい Interface Builder の制約を使用して UI を設計する際のベスト プラクティスは何ですか?
UPDATEです。 私は同じことで別のプロジェクトでいくつかのより多くの問題を抱えています。私のコントロールの上部を揃える代わりに、私のコントロールの下部をレイアウト ガイドに (約 -470 ポイント) 整えようとしていますが、これはコントロールが可変長の画面 (たとえば、通常と 4 インチ iPhone、および将来的に考えられる他のレイアウト) でレイアウトする必要があるので意味をなしません。以下は、起こっていることのスクリーンショットです。
そして、コンストレイントでこんなのが出てきました。
Interface Builderで トップ を上のレイアウトガイドに合わせるにはどうしたらよいでしょうか?
UPDATE 2です。
私は回避策を見つけました。私は最初にビューのサイズを変更して高さを減らし (それで、ビューのトップがトップ レイアウト ガイドに重ならないか、非常に近くなる)、次にそれをトップ レイアウト ガイドに CTRL+drag します。正しく動作しているようです。接続後、希望のサイズにビューをリサイズして
Update Constraints
. これは動作しますが、ビューのサイズを変更し、接続し、再度サイズを変更し、制約を更新する必要があるため、まだ解決策にはなっていません。
どのように解決するのですか?
ビューとそのスーパービューの間に制約を追加するには ("スーパービューに下のスペース") 、ドキュメントアウトライン (インターフェースビルダの左側) を使用できます。
ドキュメントアウトラインで
- ctrl キーを押しながら、ビューからそのスーパー ビューにドラッグします (またはその逆)。
- 追加したい制約を選択します(この例では、"Bottom Space to Container")。
関連
-
[解決済み] Xcode 4で「既存のフレームワークを追加」する方法は?
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] ビューを非表示にしたときに、オートレイアウトで他のビューを移動するには?
-
[解決済み】UIScrollView Scrollable Content Size Ambiguity
-
[解決済み】Xcode 6でAutoLayout制約を使用してアスペクトフィットの動作をエミュレートする
-
[解決済み】Xcode 6のストーリーボードで「余白に制約をかける」とは?
-
[解決済み】layoutSubviewsはいつ呼び出されるのですか?
-
[解決済み] iOSです。オートレイアウトで複数行のUILabelを使用する
-
[解決済み] Autolayout。トップレイアウトガイドではなく、スーパービューに制約を追加する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] 「GCC使用時に「Xcode/iOSのライセンスに同意するには管理者権限が必要です。rootでsudoを使用して再実行してください。
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] セキュリティで保護されたWebサービスにもアクセスするiOSアプリで、Facebook認証を行うためのデザイン
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?