動的セル高さを設定する方法を示すいくつかのチュートリアルを見てきましたが、適切な制約を設定して動的セルを使用している場合はすべてUITableViewAutomaticDimension
。しかし、私は静的な細胞のためにこれをしたいと思います。Swiftを使って動的セル高さで静的セルを作成する方法
タイトルがあり、説明テキストの内容とサイズが異なる開示インジケータが表示されているカテゴリを表示するセルがいくつか含まれています。したがって、私は、セルの高さを説明テキストのサイズごとに動的にしたいと思います。
私がスタティックセルを使用しているのは、ダイナミックセルを使用していない理由は、カテゴリセルの上にスタティックセルとストーリーボードを使用することによってしか得られないデザインのセルがいくつかあるからです。
私はiOS9
、Xcode 7.3
とSwift 2.2
UPDATE
表ビューコントローラコード
import UIKit
class CategoriesTableViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 140
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return 2
}
}
UPDATE 2
01を使用しています以下の2つの方法を私のテーブルビューコントローラに追加し、viewDidLoad()の2行を削除しました。これは私のためにやった!各セルのすべてのラベルに、上端、下端、先頭と末尾の制約が使用されていることを確認する必要がありました。また、各ラベルの行数が0
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
私はテキストビューを使用していません。私はテキストのために通常のラベルを使用しています。 – Jace
しかし、2つの方法を追加すると問題が解決しました。ラベルテキストのサイズに応じてセルのサイズが変更されるようになりました。ありがとう! – Jace
オハイオ州。ウェルカムフレンド:)コンパイラを幸せにしてください! –