質問: TableViewなど内容に応じてViewのheightが変化するものにAutoLayoutに対応させるべく、 制約をつけたいが、どのように制約すればよいかわかりません。 現状、最低220pxなので[Greater than or Equal 220px]の制約をつけているが、 [inequality constraint ambiguity]の警告が発生します。動作に問題はありません。 警告をなくすにはどうすればよいでしょうか。
回答: 回答ではないですが。 このような場合、 I UITableView は、別のUIViewの上に、storyboardかxibの上で貼られている。 II UITableView は、UITableViewControllerとペアで使われていて、上位のContainerViewの中に含まれている。 の2つのケースがあり得ます。 で、制約子ですが、制約子もUI部品として、outletを作ることができます。Ctrlを押しながら、マウスでドラッグする要領で。そうすると、 IBOutlet NSLayoutConstraint *tableHeightConstraint; というような宣言が、file's ownerのコントローラファイルに、出来ます。 詳細は、NSLayoutConstraintのクラス・リファレンスを参照する必要がありますが、 これには、@property (getter=isActive) BOOL active というプロパティがあり、 その制約子の有効・無効をコントロールすることが、可能です。 ですから、この画面のViewControllerソースのviewWillAppearの中で、セル数5個以下の場合は、制約子高さ220を有効とし、5個以上の場合は、制約子を無効にするか、別の内容にするか すれば、どうでしょうか。 もちろん、storyboardのframeが、どう貼られているにもよるのですが。