我有一个UITableView
静态单元格。描述标签应该显示多行文本,但只显示一行。
我选择了描述标签并将行数设置为0.我还将其设置为Word Wrap。
我按如下方式设置了自动尺寸:
class BeerTableViewController: UITableViewController {
@IBOutlet weak var beerName: UILabel!
@IBOutlet weak var brewer: UILabel!
@IBOutlet weak var beerDescription: UILabel!
var scannedBeer: Beer!
override func viewDidLoad() {
super.viewDidLoad()
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 44
beerName.text = scannedBeer.name
brewer.text = scannedBeer.brewer
beerDescription.text = scannedBeer.description
}
override func viewDidAppear(_ animated: Bool) {
tableView.reloadData()
}
}
答案 0 :(得分:1)
尝试使用heightForRowAt indexPath:
的{{1}}和estimatedHeightForRowAt indexPath:
,返回UITableViewDelegate
。
只需将表格视图UITableViewAutomaticDimension
设置为delegate
,然后使用以下内容:
self
答案 1 :(得分:0)
这是因为您在ViewDidLoad上的 beereDescription 标签为零。你需要在cellForRowAtIndexpath而不是ViewDidLoad上分配值。
你无法在UIViewcontroller类中连接单元子视图的IBOutlet。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "cellIdentifier"
let cell = tableView.dequeueReusableCell(withIdentifier: identifier)
beerDescription: UILabel? = (newsCell?.viewWithTag(101) as? UILabel) // assign tag to label in cell
beerDescription.text = scannedBeer.description
return cell
}