我在我的一个应用程序中使用嵌套的UITableView来实现Accordion视图。我在tableview中实现了三级嵌套。 它在iOS 7及更早版本中完美运行,但在iOS 8中存在问题。
以下是两个版本的屏幕截图,即iOS 7和iOS 8:
iOS 7截图
iOS 8屏幕截图:
为了方便起见,我给出了不同的颜色来识别表格。 另外我想提一下我使用自定义tableview单元格和NIB文件。 有3个UITableviews(外部区域表 - 蓝色,随后的内部位置表 - 绿色和最里面的用户表 - 黄色表)。
当我点击位置表视图截面(一个以位置名称Head Office开头的绿色条带)时,我获取该位置下的用户数量(我的执行控制位于LocationTableviewCell,之前我已经提到过使用NIB进行tableview细胞)。根据用户数量,我计算该部分的位置表行的高度,然后我还必须计算最外面的表行高度,因为它必须容纳创建的新行(用户)。为了计算最外面的tableview高度,我使用了Protocol实现,因为我无法更新最外层的GUI(Regional tableview),因为执行控件位于LocationTableViewCell文件中。问题是在iOS 8中,用户列表被隐藏,因为最外层的tableview(区域表视图)行高度没有得到更新。
很抱歉有很长的解释,但我无法粘贴代码,因为它是在三个文件中分发的,即使我试图在这里添加代码,它也会看起来搞砸了。
如果有人可以解决我面临的问题。它在iOS7中工作,那么为什么相同的代码在iOS 8中不能完美运行。
先谢谢。
答案 0 :(得分:2)
您可以通过委托方法设置单元格高度。在iOS 8中自动设置单元格高度。点击此链接http://captechconsulting.com/blog/tyler-tillage/ios-8-tutorial-series-auto-sizing-table-cells
答案 1 :(得分:1)
我认为这不是因为嵌套而出现的问题。请查看下面给出的链接。
Using Auto Layout in UITableView for dynamic cell layouts & variable row heights