2017-06-25 4 views
0

複数行のテキストを持つヘッダービューにラベルがあるため、私のテーブルビューヘッダーに自動高さを設定したいとします。 私は、次の手順を設定しました:ビュー内のUITableViewヘッダーUITableViewAutomaticDimensionが機能しない

がロード広告

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
     return UITableViewAutomaticDimension 
    } 

func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat { 
    return 200 
} 

をしました。しかし、それはまだ動作しません。 は、ここに私のストーリーボード構成である(私はワードラップを0に線や改行を設定している

別の質問:私はTableViewCellの上に追加したカスタムビューがヘッダーセルはです

Here is my storyboard configuration

答えて

0

私はラベルの高さを計算する方法を使用して終了し、ビューに高さを追加しました。

private func heightForView(text: String, font: UIFont, width: CGFloat) -> CGFloat { 
     let label = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude)) 
     label.numberOfLines = 0 
     label.lineBreakMode = NSLineBreakMode.byWordWrapping 
     label.font = font 
     label.text = text 
     label.sizeToFit() 

     return label.frame.height 
} 

をのviewDidLoad()で

let labelHeight = heightForView(text: post.content, font: contentLabel.font, width: contentLabel.frame.width) 
headerView.frame.size.height = headerView.frame.size.height + labelHeight 

なぜこの場合はUITableViewAutomaticDimensionが機能しないのか不思議です。

関連する問題