2017-10-04 15 views
2

を参照してくださいクリックすると、伸縮、私はその文字列私はJSON経由で取得して動的にこのテキストビューは、私のtableView細胞ではより多くのボタン

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 
    if indexPath.section == 0 { 
     return 255 
    } 
    return UITableViewAutomaticDimension 
} 

のようにセルの高さを更新してるのTextViewを持ってここで、スクリーンショット

です

enter image description here

は今、最初に私は、テキストビューは少しテキストを表示したいと多くのボタンが表示クリックすると、それは、拡大すべきであると膨張時にボタンのテキストが文字列の長さは、ラインだけのカップルであれば以下も参照するように変更する必要があり、参照してくださいもっと多くのボタンは非表示にしてください。私が遭遇した解決策はUILabelであり、セルの高さが動的にならないため、使用できません。また、私はそれを使用することができますnumberOfLinesのようなtextViewのプロパティはありません。私は何をすべきか、正しい方向で私を指摘してください。以下のコードのように、この拡張

答えて

0
extension String { 

    func customHeight(constraintedWidth width: CGFloat, font: UIFont) -> CGFloat { 
    let label = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: .greatestFiniteMagnitude)) 
    label.numberOfLines = 0 
    label.text = self 
    label.font = font 
    label.sizeToFit() 

    return label.frame.height 
} 

} 

使用、

let height = item.yourText.customHeight(constraintedWidth: cell.textView.bounds.width, font: UIFont.systemFont(ofSize: 17, weight: UIFontWeightSemibold)) 
cell.textViewHeightConstraint.constant = (height) 

はあなたのTextViewとフォントの幅を渡し上記の拡張メソッドを使用してみてください。このメソッドは、テキストビューの高さを動的に設定します。また、何が起こるかを計算するための独自のロジックを、より多くのボタンを参照して見てください。

関連する問題