[解決済み] UIViewsを非表示にしたAutoLayout?
質問
を表示/非表示にするのは、かなり一般的なパラダイムであるように感じます。
UIViews
最も頻繁に
UILabels
ビジネスロジックに依存します。私の質問は、AutoLayoutを使用して、隠されたビューのフレームが0x0であるかのように応答するための最良の方法は何かということです。以下は、1~3の機能のダイナミックリストの例です。
今現在、ボタンから最後のラベルまで上部に10pxのスペースがありますが、ラベルが隠されているときは明らかにスライドアップしません。今のところ、この制約の出口を作り、表示するラベルの数に応じて定数を変更しています。この方法は、負の定数値を使用して、非表示のフレームを越えてボタンを押し上げるので、明らかに少しハチャメチャになっています。また、実際のレイアウト要素に制約されているわけではなく、他の要素の既知の高さ/パディングに基づいてこっそり静的な計算をしているだけなので、明らかにAutoLayoutが何のために構築されたかに反していることも悪い点です。
ダイナミック・ラベルに応じて新しい制約を作成することもできますが、空白をつぶすだけなのに、細かい管理が必要で、冗長になってしまいます。もっと良い方法はないでしょうか? フレームサイズを0,0に変更し、制約を操作することなくAutoLayoutに任せますか? ビューを完全に削除する?
正直なところ、隠しビューのコンテキストから定数を変更するだけなら、簡単な計算で1行のコードで済みますが。新しい制約を
constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
が重く感じられます。
2018年2月編集
: とのベンの回答を参照してください。
UIStackView
s
解決方法は?
UIStackView
は、おそらくiOS 9+のために行くべき方法です。隠しビューを処理するだけでなく、正しく設定されていれば追加のスペースやマージンも削除されます。
関連
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] Cocoa Autolayout: コンテンツの抱擁 vs コンテンツの圧縮抵抗の優先順位
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] ぼかしの入ったオーバーレイビューの作成
-
[解決済み] ビューを非表示にしたときに、オートレイアウトで他のビューを移動するには?
-
[解決済み】UIScrollView Scrollable Content Size Ambiguity
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] Objective-Cでデリゲートを作成するにはどうしたらいいですか?
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] IBOutletsはARCのもとで強くなるべきか、弱くなるべきか?
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] アプリのプレビュー用にiOSシミュレータのビデオをキャプチャー
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成