嵌套的 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 是不是在 Interface Builder 中使用“静态单元”选项通过代码修改? [复制]