27816


iOSプログラムをしています。  
iOS: 9.3.2  
XCode: 7.3.1

UITableviewのセルの高さが自動で行われません。

[code]

    override func viewDidLoad() {
        super.viewDidLoad()
    
        self.table.estimatedRowHeight = 80
        self.table.rowHeight = UITableViewAutomaticDimension
    
[/code]

のestimatedRowHeightやrowHeightは効かなくなってしまったのでしょうか？

[code]

        func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return セルの高さ }
    
[/code]

は効きます。ご存知の方、ご教示お願いします。


CC BY-SA 3.0
2016-07-22T11:19:34.167
27814
2016-07-22T21:54:32.797
8593
question
swift uitableview
swiftのUITableviewのセル高さ調整


通常`UITableView`のセルの高さを自動でその内容に追従させるには、次の3つが必要です。

  1. 表示させるセルにAutoLayoutで高さが決定できるような制約を与える
  2. `estimatedRowHeight`プロパティに値を設定する
  3. `rowHeight`プロパティの値を`UITableViewAutomaticDimension`に設定する

あなたの場合、2.と3.を行われたことは書いていますが、1.については不明です。

AutoLayoutの設定をstoryboard上で行う場合の記事は多数(外部)見つかりますが、1つだけ挙げておきます。  
[Self-sizing Table View Cells](https://www.raywenderlich.com/129059/self-
sizing-table-view-cells)  
英語の記事ですが、画面キャプチャーも多く、かなり丁寧に描かれているので、文章を読み飛ばして絵とコードだけ見てもほぼ理解できるのではないかと思います。このタイトルをキーワードに検索をかければ日本語の記事も見つかりますが、私の環境ではかなり古い記事しか見つからなかったので、掲載は控えておきます。

セルの作成にPrototype
Cellの機能などを使わずコードだけで処理しているのであれば、Constraintsをコードで設定した経験が豊富でないと、かなり難しいかもしれません。

「1.についてもやっているがうまくいっていない」と言うのであれば、ご質問の方にその辺りの情報を追記して下さるようお願いします。


CC BY-SA 3.0
2016-07-22T21:54:32.797
27816
2016-07-22T21:54:32.797
13972
27814
answer