2017-10-30 39 views
0

こんにちは。私はすでにGoodleでそれについての情報を見つけようとしていますが、何も私を助けないでしょう。
私は迅速な初心者です。お願い助けて。iOS TableViewの制約が機能しない

TableViewControllerに自動レイアウトします。

TableViewController

は、今ではIB、プレビューとシミュレータで罰金に見えるのですが、これだけの画面サイズに、確認してください。私は1つのStackOverflowの答えで見たよう

は、その後、私はこのようなセルのサブビューのそれぞれに、5つの制約によって追加:私は、プロジェクトを実行するとき

enter image description here

と今、墜落した外観です:

enter image description here

why

+0

セルの高さもプログラムで設定していますか? –

+0

@ShamasSいいえ、サブビューに制約を追加する代わりにIB – igolka97

+0

の代わりにUIViewをコンテナビューとして追加し、そのサブビューを追加して、それに対して提案された制約を適用します。UIViewの最後の制約を追加します –

答えて

2

このような種類のネストされたビューには、UIStackViewを使用できます。これは、開発者が適用する必要がある制約の数を減らすだけです。

例:

1. UITableViewDataSource

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
{ 
    return 2 
} 

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
{ 
    return tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 
} 

2.ストーリーボード:ビュー階層と制約:

enter image description here

3.出力:

enter image description here

私はheight/estimatedHeightUITableViewDelegateメソッドを使用していません。セル(if the constraints are right and the cell is able to calculate its own height)によって自動的に計算されます。

+0

面白い解決策!ありがとう! – igolka97

+0

確かに。それが働いたら答えを受け入れる.. – PGDev

-1

これらの5つの制約をに追加した場合、各セルのサブビューは間違っています。さらに、contentViewはセルのサブビューでもあり、その幅を変更しているため、幅が縮小されています。さらに、各サブビュー(contentViewは含まれていないはずです)には異なる制約があります。

UITableViewAutomaticDimensionを使用して、制約に基づいてセルの高さを自動的に推定するようにXcodeに指示することもできます。

関連する問題