是的,我知道stackoverflow
中有很多关于这个问题的问题。但我的问题有点不同,因此CollectionView
单元格元素为UILabels
。我可以显示CollectionView
元素,如下所示:
当我使用UITableViewAutomaticDimension
时,它会解除CollectionView
,并且不允许它触发delegates
。
我想使用heightForRowAt
,无法计算UILabel
行数以检测总CollectionView
内容高度。由于UILabel
宽度可更改,因此有时可以并排使用2个或3个标签。我希望我能解释一下这个问题。
我尝试下面的内容,但它不能完全发挥作用。有时tableviewCell
涵盖CollectionView
。任何人都可以帮我解决这个问题吗?
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if let cell = tableView.dequeueReusableCell(withIdentifier: CELL_PLACE_DETAILED_KEYWORDS_TABLE_VIEW) as? PlaceDetailedKeywordsTableViewCell {
let keywords = self.placeInfo?.keywords
let btnHeight:CGFloat = PreferencesCollectionConstants.keywordsBtnHeight
let titleLabelHeight = cell.titleLabel.frame.height
let spaceBetweenTitleAndCollection: CGFloat = 10
var rows = Helper.calcRowsCountOfPrefsForTableCell(data: keywords!, contentInset: self.contentInset, cellSpace: self.minItemSpacing, collectionViewWidth: cell.collectionView.frame.width,prefBtnHeight: btnHeight,font: font2)
rows = ceil(rows)
let tableViewCellHeight = titleLabelHeight + spaceBetweenTitleAndCollection + rows*keywordsBtnHeight
return tableViewCellHeight
}
return UITableViewAutomaticDimension
}