これは私が示唆している考えの例です。これがあなたのために最適化されたものを見つけるのを助けてくれることを願っています。
私が引き受ける場合は、データソースは、このようなものです:
// array of arrays of strings
var Array : [[String]] = [
["Label1", "Label2", "Label3", "Label4"],
["Label1", "Label2"],
["Label1", "Label2", "Label3", "Label4", "Label5", "Label6"],
]
これらのメソッドを実装することができます
func calculateExpectedHeight(withItemsCount: Int) -> CGFloat
{
let titleHeight = 32.0 // this is e.g. your Layer Conf. label
let itemHeight = 18.0 // this is for a label unit that is repeating
return CGFloat(titleHeight) + CGFloat((Double(withItemsCount) * itemHeight)) + 12.0 //twelve is just for tuning
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let dataForThisRow = Array[indexPath.row]
return calculateExpectedHeight(withItemsCount: dataForThisRow.count)
}
使用すると、テーブルビューセルにあなたのラベルのすべてを拘束するように自動レイアウト。次に、テーブルビューデリゲートで、 'heightForRowAt'と' estimatedHeightForRowAt'の 'UITableViewAutomaticDimension'を返します。これらのことが適切に行われると、表/セルがあなたのサイジングを処理します。 – keithbhunter
すべてのラベルをtableviewcellに制限する??あなたはこれを詳しく教えてもらえますか? –
autolayoutの使い方をお読みください。それはあなたが必要とするものです。 [Appleのウェブサイトに関する記事](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/)と[Ray Wenderlichチュートリアル](https://www.raywenderlich.com/115440/自動レイアウト - チュートリアル - ios-9-パート-1-開始 - 2)。 – keithbhunter