2016-04-05 6 views
1

私のアプリでは、レストランに関する情報を表示する詳細UIViewControllerがあります。どのような情報が提供されているかによってUIを動的に設定する方法を理解しようとしています。レストランについての情報は、そのイメージ、名前、住所、および説明です。レストランのイメージと名前は常にそこにありますが、その住所と説明はそこにあることが保証されていません。iOS - 可能なサブビューの異なる組み合わせの動的UI

enter image description here

enter image description here

enter image description here

enter image description here

私はこのダイナミックなUIを設定するにはどうすればよい:

これは、ビューがどのように見えるかの4つの可能な組み合わせで私の葉私のUIViewController?私は条件に基づいて隠されたビューを設定することに慣れています。しかし、レストランの場所が利用できない唯一の情報であるという例では、正しく理解すれば、レストランのタイトルとレストランの説明の間のギャップはそのまま残ります。

このような動的UIを扱う際に使用する一般的な方法はありますか?助けやアドバイスをいただければ幸いです。ありがとう。

答えて

1

場所テキストの高さ制約と説明テキストの高さ制約のコンセントを作成します。これらの情報のいずれかが欠落しているとあなたが景色を「非表示」にしたい場合は

@property (nonatmoic, strong) @IBOutlet NSLayoutConstraint *heightForLocation; 
@property (nonatomic, strong) @IBOutlet NSLayoutConstraint *heightForDescription; 

することは、あなたはself.heightForLocation.constant = 0;またはself.heightForDescription.constant = 0;のいずれかとの意見が非表示になります。ロケーションテキストビューの高さを0に設定すると、ビューは非表示になり、説明テキストビューは上に移動してギャップがないように見えます。

ビューがどのように配置され、どのような垂直方向の制約があるかについては、複数の設定で再生できますが、ここでの魔法は実際にその高さを0に設定していることです。それに応じてビューがレイアウトされます。

+0

偉大で巧妙な解決策!ありがとう、トン! :D – Rafi