集合视图由单行水平对齐的单元格组成,其大小与集合视图的边界大小相同,单个单元格填充整个屏幕。
问题是集合视图似乎拦截了所有的平底锅。如何将它们转发到表格,以便我也可以垂直滚动表格。
我希望将垂直平移传送到单元格内的表格,以便它可以上下滚动。我希望将水平平移传送到集合视图,以便它可以水平滚动。
有任何想法吗?谢谢。
集合视图由单行水平对齐的单元格组成,其大小与集合视图的边界大小相同,单个单元格填充整个屏幕。
问题是集合视图似乎拦截了所有的平底锅。如何将它们转发到表格,以便我也可以垂直滚动表格。
我希望将垂直平移传送到单元格内的表格,以便它可以上下滚动。我希望将水平平移传送到集合视图,以便它可以水平滚动。
有任何想法吗?谢谢。
对于使用 storyBoard 的 CollectionView 中的 UITableView,请按照以下步骤操作:
- 将 CollectionView 拖到 UIViewController,将数据源拖到 UIViewController(不要拖委托)。在 ViewController.m 中添加数据源方法
- 创建单元格:CollectionViewCell 类。在 storyBoard 中为 Cell 选择类到 Cell 类,指定重用 ID。
- 将 tableView 拖到 collectionCell 方格内。委托,数据源也拖到 CollecionCell Square。在 Cell.m 中添加 tableView 数据源,委托
- 在其中实现 tableViewDidSelect 时创建 CellDelegate。将此委托转移到 UIViewController 以执行其他操作
示例代码:https ://github.com/lequysang/github_zip/blob/master/TableViewInCollection.zip
Swift2 更新 - 我们不需要执行上述所有步骤。只需让控制器成为 tableview 和 collection view 的委托和数据源就可以了。
我已经能够在不使用情节提要的情况下完成这项工作——尽管我使用 XIBs 作为我的视图,但只是为了添加自动布局规则。所有自定义(颜色、字体、标签等)都在代码中设置。无论如何,这也应该适用于以编程方式构建的单元格。
怎么做:
要记住的最重要的事情是将您的自定义视图添加到单元格的contentView
属性中,而不是在单元格本身内部。如果您将 XIB 用于自定义UICollectionViewCell
,请将其留空。实例化您的自定义视图(在哪里UITableView
),然后将其添加为UICollectionViewCell
's的子视图contentView
。如果直接在集合视图单元格内添加表格视图,表格视图将不会垂直滚动。
实现shouldSelectItemAtIndexPath
andshouldHighlightItemAtIndexPath
的UICollectionViewDelegate
and 使两者都 return false
,以便点击集合视图单元格不会拦截用于内部表格视图的点击。
使用适用于 iOS 9+ 的 Xcode 7.3 完成。