我有一个自定义的UITableViewCell,里面有两个标签。一个标签包含一个单词的简短定义,另一个包含一个较长的定义,仅在选中单元格时显示。短定义的长度区分单词和单元格,因此为单元格设置明确的高度有时会切断部分定义。问题是,如果我使用UITableViewAutomaticDimension,单元格会将其高度设置为适合较长定义标签的高度,即使此时隐藏较长的定义标签。这在单元格中留下了很多空白区域。当单元格被轻敲时,出现较长的定义标签,较短的一个消失,并且单元格正确展开。我怎样才能设置我的细胞的动态高度,这将适用于较短和较长的标签,以便在不需要时可以移除这个额外的空白区域?UITableViewCell,设置动态高度w /多个标签
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if currentRow == indexPath.row {
return UITableViewAutomaticDimension
} else {
return 150.0
}
}
编辑:我使用
的definitionLabel之前是隐藏的电池在didSelectRowAtIndexPath方法触摸的自定义单元格。我需要单元格在不同时间符合definitionLabel和quickDefinitionLabel的高度。
class ListTableViewCell: UITableViewCell {
@IBOutlet weak var wordLabel: UILabel!
@IBOutlet weak var definitionLabel: UILabel!
@IBOutlet weak var quickDefinitionLabel: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
self.autoresizingMask = UIViewAutoresizing.FlexibleHeight
self.clipsToBounds = true
definitionLabel.hidden = true
}
override func prepareForReuse() {
self.wordLabel.textAlignment = NSTextAlignment.Left
definitionLabel.hidden = true
quickDefinitionLabel.hidden = false
}
}
使用: tableView.estimatedRowHeight =“小区的UI高度” tableView.rowHeight = UITableViewAutomaticDimension –