因此,基本上,我想在UITableView
内嵌入UITableViewCell
。
我使用UIStackView
来发挥其AutoLayout
的力量!
无论如何,“内部UITableView” 的每一行都将由大小固定的UIImageView
和UILabel
的{{1}}(即不固定)组成>
lines = 0
(水平)-> UIStackView
+ UIImageView
要求:
UILabel
的高度达到UITableView
automaticDimension
上方UILabel
的文本也是动态的。 (因此首先使用UITableView
有意义)注意:主要UIStackView
由多个不同类型的单元格组成(这基本上是一个BotChatBot)
也:UITableView
可以达到40点左右。
问题:
动态调整InnerTableView的大小会导致其estimatedHeight
方法不会被调用一次,因此由于cellForRowAt
的不变而导致UIStackView
的长度无法增加。
为了解决上述问题,我尝试:
contentSize
为50,从而将UITableViewew的高度设置为estimatedRowHight
,这虽然给了我一些空间,但仍然没有当连续高度超过估计高度40 为tableViewInsideCellHeightConstraint?.constant = tableViewInsideCell.contentSize.height
,layoutIfNeeded()
和TableView
触发了PS StackView
我还有另一种解决上述问题的方法:
ParentCell
的{{1}}更改为计算出的值{heightConstraint
)(因为每次迭代将提供单元格的大小(内容大小)Inner UITableView
的高度约束+=visibleCells[i].frame.height
上面的修复导致UI中出现明显的混蛋:[
问题:
以上问题是否有具体解决方案? 我试图一遍又一遍地搜索它。.真的找不到任何强大的解决方案!
答案 0 :(得分:0)
当您调用api 以获取 subTableView 中的数据时,可以尝试如下操作:
self.tvCell?.table.reloadData() //tv cell is my Parent TableViewCell
self.table.beginUpdates() //Parent TableView
self.table.endUpdates() // Parent TableView
对我来说一切正常,希望对您有帮助。
答案 1 :(得分:0)
好的,所以您正在构建一个聊天应用程序。那改变了我的一些建议。
因此要回答您的问题,您可以执行以下操作:Replacement for deprecated sizeWithFont: in iOS 7?用sizeWithAttributes:
计算文本的大小。将所有标签高度相加(计算出图像是否更大),然后使用该标签高度尝试为表格视图计算固定高度,那么它将完全显示列表。对于表视图来说,这确实不是理想的情况。
我个人将看一下松弛处理此问题的方式。除了在文本提示框内包含选项之外,您还可以使每个选项在出现消息后单独显示为新的提示框或单元格,或者在单个单元格中具有一堆按钮。
这是一个站立机器人的示例(来自他们的网站),其中显示一个带有按钮集合的单元格,可能在堆栈视图或滚动视图中。这可能是比在tableview中包含tableview更为简单的方法