2017-03-01 5 views
1

に基づいて作る私は階層UITableViewCellの内部にUITableViewを追加しています。テーブルビューの高さは、コンテンツ

を以下に含まれているのUITableViewCellを作成しているのUITableViewCell ------ ContentView ------------ ScrollView ----- ------------- TableView

TableViewのスクロールを停止します。

テーブルのデリゲートとデータソースが実装されているカスタムクラスで、TableViewの高さ制約のコンセントを取得しました。

この点データは1つの問題で表示されます。 [テーブルの高さは固定されており、xibからの制約で50 pxに設定されています]

今すぐwillDisplayコール内で高さ制約をtableviewのコンテンツサイズに更新しています。しかし、これは直ちに更新されていません。テーブルをスクロールすると、更新された高さでテーブルが表示されます。

正しく表示されている制約の定数をデバッグしましたが、tableviewでreloadDataを呼び出してもUIが古い高さを表示しています。何もここに行方不明...

GitHubのリンク:あなたのビューコントローラでheightForRow方法で

class InnerTableView: UITableView { 
    override var intrinsicContentSize: CGSize { 
     return self.contentSize 
    } 
} 

2.Return UITableViewAutomaticDimension次のオーバーライドを持つインナーtableViewためhttps://github.com/sagarmane19/Sample-Apps

答えて

1

1.Createカスタムクラス:

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    return UITableViewAutomaticDimension 
} 

3.確かにtopbottomセルの内部の制約tableView

+0

私はこのアプローチを試しました。以前は1つのセルしか表示していなかった複数のセルを見ることができました。これは今見ている方法です:https://sagarm.tinytake.com/sf/MTM3Nzc2NF81MDA3MDg2 –

+0

GitHubリンク:https://github.com/sagarmane19/Sample-Apps –

+0

@Sagar ...はい、要点です動的な高さのビューに高さ制約を指定するのではなく、代わりに自動レイアウトに依存するということです。 – alexburtnik

関連する問題