带有 UICollectionviewcell 和 UITableviewcell 的 UITableview

Posted

技术标签:

【中文标题】带有 UICollectionviewcell 和 UITableviewcell 的 UITableview【英文标题】:Uitableview with UICollectionviewcell and UITableviewcell 【发布时间】:2016-10-06 06:13:50 【问题描述】:

我需要创建以下设计

我正在按照此代码在 UITableView 内绘制带有水平滚动的简单集合视图

当前的示例代码是这样工作的

UITableView-> UICollectionViewCell 作为具有水平滚动的单元格

我想要什么

我想要:带有水平滚动的 UICollectionview 的第一行和 然后用 Normal UITableviewCell 休息行来显示数据

我该怎么做。

【问题讨论】:

使用UIViewController,在viewControllers 视图的顶部,添加UICollectionView 作为子视图。在 collectionView 下方添加 UITableView 作为子视图。 意思-> UIViewcontroller->uitableview->uicollectionview ? 但我需要在一个单独的 tableview 中进行滚动而不是 hack 【参考方案1】:
    UITableView 添加到您的view controller 并实现它的delegatedatasource 方法。(您可以使用UITableViewController 而不是UIViewController)。 对于tableviewfirst sectionfist cell,您应该使用custom tableview cell。 在这个自定义tableview cell 中,您必须将collection view 添加到horizontal scroll,并在custom tableview cell class 中实现其delegatedata source 方法。

这些是您必须执行的步骤。

请参阅此implement uicollectionview inside uitableview 问题了解更多信息。

希望这对你有帮助。

【讨论】:

【参考方案2】:

你应该设计一个UITableViewCell,里面有一个UICollectionView,并为A部分的单元格设置这个单元格,对于B部分,你应该设计一个新的UITableview单元格。

【讨论】:

tableview 中要处理的条件?\ 在 UITableView 委托中:索引路径处的行单元格,检查 index.section 是 0 还是 1,如果是 0,则为 sectionA 加载 tableviewcell,否则为 section 1 加载 tableviewcell【参考方案3】:

当 tableview 的 cellForRowAtIndexPath 调用时,您可以检查第一部分,当第一部分加载时,您可以在第一个单元格中创建新的 UICollection 视图对象加载。下一节将加载您可以像正常的 tableview 工作一样工作。

不——您还需要实现 UICollectionview 委托和数据源方法。

【讨论】:

我宁愿选择“2 个自定义单元”路线(由 Anuradh 和​​ Saravana 声明),这比将所有内容都放在 cellForRow 中要干净得多 那将是处理这种情况的另一种方式。

以上是关于带有 UICollectionviewcell 和 UITableviewcell 的 UITableview的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewCell 内带有 UITableView 的自定义单元格

带有界面生成器的 UICollectionViewCell

带有平移手势识别器的UICollectionViewCell

带有 UIProgressView 的自定义 UICollectionViewCell 在重用单元格上显示 progressView

带有 UIButton 单选按钮的 UICollectionViewCell - 一次选择一个单选按钮

UICollectionViewCell 带有约束的动画