嵌套的 UITableViews 在 iOS7 中不再工作

Posted

技术标签:

【中文标题】嵌套的 UITableViews 在 iOS7 中不再工作【英文标题】:Nested UITableViews no longer work in iOS7 【发布时间】:2013-09-20 20:55:35 【问题描述】:

我在另一个表格的第一个单元格中有一个嵌套表格。它工作得很好,直到我为 ios7 重新编译,现在内表的行选择事件不再由内表的委托方法处理。

我被难住了。有任何想法吗?谢谢!

【问题讨论】:

听起来切换到 AutoLayout 是罪魁祸首。我想我对外部表视图的超级视图没有足够的约束。我将缺少的宽度和高度约束添加到我的外部表视图中,但我似乎无法将它们添加到它在 IB 中的父视图中。请查看此帖子:***.com/questions/16629673/… 请输入一些代码,以便更好地解决您的问题 【参考方案1】:

我经常使用这种技术,它在 iOS 7 中仍然有效。请记住,由于滚动视图(在本例中为 tableview)的约束如何工作,您需要内部 tableview 的内容来定义它的高度(我'我假设内表是固定的,所以 height = contentSize)。

我通常为此目的将 UITableView 扩展为类似这样的东西,以便它在这种情况下很好地处理约束:

@implementation ExpandedTableView

- (void)reloadData

    [super reloadData];
    [self invalidateIntrinsicContentSize];


- (CGSize)intrinsicContentSize

    return self.contentSize;


@end

另外,请查看我的 pod,并使用一些助手轻松创建动态高度表单元格: https://github.com/fer662/UITableViewHelper

【讨论】:

【参考方案2】:

我不知道是否是这种情况,但请确保将嵌套表视图添加到第一个单元格的 cell.contentView 中。由于 iOS7 上的 UITableViewCell 层次结构发生了变化,您现在需要将每个控件添加到单元格 contentView。

【讨论】:

以上是关于嵌套的 UITableViews 在 iOS7 中不再工作的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7.1 在 UIPopover 中嵌套 UICollectionView

UINavigationBar下的多个UITableView

从 UITableViews 保存文本

UITableViews 是不是在 Interface Builder 中使用“静态单元”选项通过代码修改? [复制]

如何在单独的 UITableviews 上显示 JSON 文件的内容?

UITableView Space 3 UITableViewCells 均匀分布在整个设备框架上