[英]UITableView inside UITableViewCell height issues
所以基本上,我要嵌入UITableView
内UITableViewCell
。
我用UIStackView
来使用它的AutoLayout
电源!
无论如何, “Inner UITableView”的每一行都包含一个固定大小的UIImageView
和lines = 0
UILabel
lines = 0
(即不固定)
UIStackView
(水平) - > UIImageView
+ UILabel
要求:
UITableView
的高度达到automaticDimension
UITableView
上方的UILabel
文本也是动态的。 (因此首先使用UIStackView
是有意义的) 注意: Main UITableView
由多个不同类型的单元格组成(这基本上是一个BotChatBot)
另外: estimatedHeight
可以在40点左右。
问题:
动态调整大小的InnerTableView导致其cellForRowAt
方法不被调用一次,因此不允许UIStackView
由于contentSize
没有变化而增加其长度。
为了解决上述问题,我尝试了:
estimatedRowHight
为InnerTableView为50,从而建立的UITableView的高度tableViewInsideCellHeightConstraint?.constant = tableViewInsideCell.contentSize.height
这在某种程度上给了我一定的空间,但它仍然是不可靠的,当一排的高度超过估计的高度40 PS layoutIfNeeded()
是为TableView
, StackView
和ParentCell
触发的
我还有另一种解决上述问题的方法:
Inner UITableView
heightConstraint
, +=visibleCells[i].frame.height
)(因为每次迭代将提供单元格的大小(内容大小) Inner UITableView
的高度约束 if heightForTableView == nil {
if indexPath.row == listDict!.count - 1 {
var heightOfTableView: CGFloat = 0.0
let cells = tableView.visibleCells
for visibleCells in cells {
heightOfTableView += visibleCells.frame.height
}
let newHeight = heightOfTableView + cell.frame.height
reloadMe(newHeight)
}
}
以上修复导致UI中的可见混蛋:[
题:
上述问题有没有具体的解决方案? 我试着一遍又一遍地搜索它..真的找不到任何强有力的修复!
当您在subTableView中 调用数据api时 ,您可以尝试如下:
self.tvCell?.table.reloadData() //tv cell is my Parent TableViewCell
self.table.beginUpdates() //Parent TableView
self.table.endUpdates() // Parent TableView
它对我来说很好,我希望它会对你有所帮助。
好,所以你正在建立一个聊天应用程序。 这改变了我的一些建议。
所以要回答你的问题,你可以遵循这样的事情:在iOS 7中替换不推荐使用的sizeWithFont: 使用sizeWithAttributes:
计算文本的大小sizeWithAttributes:
。 添加所有标签高度(如果图像将更大,计算出来)并使用它来尝试计算tableview的固定高度,那么它将完全显示列表。 这不是tableview的理想情况。
就个人而言,我会看看松弛处理它的方式。 您可以让每个选项在消息之后单独显示为新的气泡或单元格,或者在单个单元格中有一堆按钮,而不是在文本气泡中包含选项。
这是一个standbot(来自他们的网站)的例子,显示了一个带有按钮集合的单元格,可能是堆栈视图或滚动视图。 这可能是一种更容易实现它的方法,而不是在tableview中使用tableview
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.