我有一個自定義的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 –