集合视图由一行水平对齐的单元格组成,其大小与集合视图的边界大小相同,单个单元格填充整个屏幕。
问题是集合视图似乎正在拦截所有平底锅。如何将它们转发到表格中,这样我也可以垂直滚动表格。
我希望将垂直平移传送到单元格内的表格,以便它可以向上和向下滚动。我希望将水平平移传送到集合视图,因此它可以水平滚动。
有什么想法吗?感谢。
答案 0 :(得分:15)
对于使用storyBoard的CollectionView内的UITableView,请按照以下步骤操作:
-Drag CollectionView到UIViewController,将数据源拖到UIViewController(不要拖动委托)。在ViewController.m
中添加数据源方法-Create Cell:CollectionViewCell类。在storyBoard到Cell类中选择Cell类,指定重用ID。
-Drag tableView里面的collectionCell方块。委托,数据源也拖到CollecionCell Square。添加tableView数据源,在Cell.m
中委托在其中实现tableViewDidSelect时创建CellDelegate。将此委托转移到UIViewController以执行其他操作
示例代码:https://github.com/lequysang/github_zip/blob/master/TableViewInCollection.zip
答案 1 :(得分:2)
Swift2更新 - 我们不需要执行上述所有步骤。只需使控制器成为tableview和collection视图的委托和数据源就可以了。
答案 2 :(得分:0)
我已经能够在不使用故事板的情况下完成这项工作了 - 尽管我使用XIB作为我的观点,但只是添加了Autolayout规则。所有自定义(颜色,字体,标签等)都在代码中设置。无论如何,这也适用于以编程方式构建的单元格。
怎么做:
最重要的是要记住将自定义视图添加到单元格的contentView
属性,将添加到单元格本身中。如果您将XIB用于自定义UICollectionViewCell
,请将其留空。实例化您的自定义视图(UITableView
所在的位置),然后将其添加为UICollectionViewCell
的{{1}}的子视图。如果您直接在集合视图单元格中添加表格,表格视图将不会垂直滚动。
实施contentView
的{{1}}和shouldSelectItemAtIndexPath
并同时返回shouldHighlightItemAtIndexPath
,以便点击集合视图单元格时不会使用针对里面的表格视图。
使用Xcode 7.3 for iOS 9 +。