在iOS 8中,嵌套的UITableview行高度未完全更新

时间:2014-09-26 12:42:55

标签: ios iphone xcode ios8 xcode6

我在我的一个应用程序中使用嵌套的UITableView来实现Accordion视图。我在tableview中实现了三级嵌套。 它在iOS 7及更早版本中完美运行,但在iOS 8中存在问题。

以下是两个版本的屏幕截图,即iOS 7和iOS 8:

iOS 7截图 iOS 7 Screenshot

iOS 8屏幕截图: iOS 8 Screenshot

为了方便起见,我给出了不同的颜色来识别表格。 另外我想提一下我使用自定义tableview单元格和NIB文件。 有3个UITableviews(外部区域表 - 蓝色,随后的内部位置表 - 绿色和最里面的用户表 - 黄色表)。

当我点击位置表视图截面(一个以位置名称Head Office开头的绿色条带)时,我获取该位置下的用户数量(我的执行控制位于LocationTableviewCell,之前我已经提到过使用NIB进行tableview细胞)。根据用户数量,我计算该部分的位置表行的高度,然后我还必须计算最外面的表行高度,因为它必须容纳创建的新行(用户)。为了计算最外面的tableview高度,我使用了Protocol实现,因为我无法更新最外层的GUI(Regional tableview),因为执行控件位于LocationTableViewCell文件中。问题是在iOS 8中,用户列表被隐藏,因为最外层的tableview(区域表视图)行高度没有得到更新。

很抱歉有很长的解释,但我无法粘贴代码,因为它是在三个文件中分发的,即使我试图在这里添加代码,它也会看起来搞砸了。

如果有人可以解决我面临的问题。它在iOS7中工作,那么为什么相同的代码在iOS 8中不能完美运行。

先谢谢。

2 个答案:

答案 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