查看粉红色UILabel
内的第二个UITableViewCell.
如您所见,其中的文字被截断。我一直试图让这个UILabel
的高度正确地扩展或缩小,作为插入文本的数量的函数 - 并且它不起作用。
•我正在使用AutoLayouts
•UILabel
的{{1}}固定在ContentView
的所有4个边上 - 当然位于UITableViewCell
内
•顺便说一下,单元格都是Static
个单元格,而不是Prototype
个单元格
•这是我正在使用的代码:
(在viewWillAppear中)
descriptionLabel.text = " < a bunch of text goes here > "
descriptionLabelSize = descriptionLabel.sizeThatFits(descriptionLabel.bounds.size)
// here's a global var I use to store the height:
descriptionLabelHeight = descriptionLabelSize.height
然后,在viewDidAppear(和FYI,我也尝试将以下内容放在will
和didLayoutSubviews
以及各种其他排列中:)
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
var newFrame = descriptionLabel.frame
newFrame.size.height = descriptionLabelHeight
descriptionLabel.frame = newFrame
descriptionLabel.setNeedsLayout()
view.layoutIfNeeded()
}
最后,在heightForRowAtIndexPath
中,我使用全局变量来调整TableViewCell的高度:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
switch indexPath.row {
case 0: return 50
case 1: return descriptionLabelHeight+20 // the + 20 is for padding & margin
default: return 50
}
}
结果是混合的:标签的高度 - 以及容纳它的单元 - 调整 - 但还不够。它总是太短暂。我并不是说它只是切断了几个单词,它的 方式 太短,切断了多个句子。
但同样:高度 进行调整。这就是奇怪的部分。它的工作 - 还不够。
任何提示将不胜感激!
答案 0 :(得分:0)
您需要告诉表视图根据内容动态缩放单元格:
tableView.rowHeight = UITableViewAutomaticDimension
然后,您可以删除heightForRowAtIndexPath:
的实现 - 单元格应自动缩放。请记住正确设置布局约束。没有它,动态尺寸不会起作用。