iOSオートレイアウト設定高さ制約ゼロへの制約は無効なレイアウトにつながります

StackOverflow https://stackoverflow.com//questions/22018020

  •  21-12-2019
  •  | 
  •  

質問

AutoLayoutを使用して次のレイアウトを有効にしています:

UIView
  UITableView
.

私は以下の制約を持っています(ここでは、ここでは残りのみが概説されていません):

|-(17)-[UITableView:0x15bfc200]  priority 1000 (Top space to container)
[UITableView:0x15bfc200]-(17)-|  priority 1000 (Bottom space to container)
[UITableView:0x15bfc200](=20)    priority 750  (TableView height)
.

ゼロにゼロに設定しようとしているとき(コンテンツがありません)アプリは例外で停止します。

Probably at least one of the constraints in the following list is one you don't want...blah blah blah...

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x1559bf40 V:[UITableView:0x15bfc200]-(17)-|   (Names: '|':UITableViewCellContentView:0x1559b330 )>
.

現在、次のコードを使用して高さを設定します。

heightConstraint.constant = 0;
.

TableViewの高さをゼロに設定する正しい方法は何ですか?いくつかの制約の優先順位を下げる必要がありますか?

役に立ちましたか?

解決

問題は、外部のUIViewが特定のサイズであることです。その高さは54ポイントですので、最初に自分の制約を設定します。しかし、高さを0に変更すると、数学はうまくいかない:17 + 0 + 17!= 54。

この小さな表現のためのあなたの目標は100%ではありませんが、私はあなたがそれを上位制約と高さ制約(下の拘束なし)でそれを位置決めできるべきだと思います。これにより、制約がSuperViewの高さに追加されるという要件を削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top