UICollectionView里面的UITableView处理触摸。

集合视图由单行,水平alignment的单元格组成,其大小与集合视图的边界大小相同,单个单元格填充整个屏幕。

问题是收集视图似乎是拦截所有的平底锅。 我怎样才能转发他们的表,所以我也可以垂直滚动表。

我想垂直平底锅被传递到单元格内的表,所以它可以上下滚动。 我想水平平移传递到集合视图,所以它可以水平滚动。

有任何想法吗? 谢谢。

对于使用storyBoard的CollectionView中的UITableView,请按照下列步骤操作:

拖动CollectionView到UIViewController,拖动数据源到UIViewController(不要拖动委托)。 在ViewController.m中添加数据源方法

– 创build单元格:CollectionViewCell类。 在storyBoard中为CellselectCell类,指定重用ID。

在collectionCell方块内部拖动tableView。 代表,数据源也拖到CollecionCell Square。 添加tableView数据源,委托在Cell.m中

创buildCellDelegate的时候在其中实现tableViewDidSelect。 将此代理转移到UIViewController以执行其他操作

示例代码: https : //github.com/lequysang/github_zip/blob/master/TableViewInCollection.zip

Swift2更新 – 我们不需要执行上述所有步骤。 只是使控制器的委托和数据源的桌面视图和集合视图工作得很好。

我已经能够在不使用故事板的情况下完成这项工作 – 但是,我使用XIB作为我的视图,但仅添加了Autolayout规则。 所有自定义(颜色,字体,标签等)都是在代码中设置的。 在任何情况下,这也适用于以编程方式构build的单元格。

怎么做:

  • 要记住的最重要的事情是将自定义视图添加到单元格的contentView属性,不是单元格本身 。 如果您使用自定义UICollectionViewCell ,请将其留空。 实例化自定义视图( UITableView所在的位置),然后将其添加为UICollectionViewCellcontentView的子视图。 如果直接在集合视图单元格内添加表格vie, 则表格视图将不会垂直滚动

  • 实现shouldSelectItemAtIndexPathshouldHighlightItemAtIndexPath并使两者都返回false ,以便点击集合视图单元格不会拦截打算用于表格视图的内部。

用Xcode 7.3 for iOS 9+完成。