问题示例:https://github.com/hecode/problem-example 使用下面提到的方法3 对不起匆忙的代码。
视图非常复杂,但我会尝试尽可能多地解释。 视图看起来像这样:
******full height parent table**************
******parent cell*************************
* static content
* variable height label
*** full height inner tableview*****
*** inner cell *****
* static content
* variable height label
********************
************************************
*****************************************
********************************************
两个单元格的高度可变:
tableView.estimatedRowHeight = 90
tableView.rowHeight = UITableViewAutomaticDimension
并且两个tableviews都是全高。对于父级我在内容化上使用观察者并在那里更新它正常工作。
我目前的问题是内部单元格的tableview,其内容大小并没有返回正确的内容。
我试过了:
1.在contentize上使用观察者并将tableview的高度约束更改为新值 2.使用contentsize覆盖tableview的高度约束,覆盖layoutSubviews 3.改写tableview的高度约束覆盖willDisplay与最后一个单元格中的contentsize并使tableview的底部约束750而不是1000,如果它的1000然后剪切发生
前两种方法在大多数情况下导致剪裁,有时在底部会产生额外的可变大小空间。 第三种方法有额外的可变大小空间。
在第三种方法中,我尝试打印单元框架高度,并将它们与xcode uidebugger中的值进行比较,发现它们不同。
btw内部单元格从父表中获取数据,并且是内部tableview的委托和数据源
有人可以给我任何想法吗?有没有办法获得内部tableview的实际内容大小来设置表的高度约束?删除高度约束并对父视图使用底部约束会导致剪切,并且有时也不会在所有时间都看到innertableview,因此使用高度约束将其设置为0,因为它不是'需要。
我正在使用ios10.3,swift 3