带有 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
并实现它的delegate
和datasource
方法。(您可以使用UITableViewController
而不是UIViewController
)。
对于tableview
中first section
的fist cell
,您应该使用custom tableview cell
。
在这个自定义tableview cell
中,您必须将collection view
添加到horizontal scroll
,并在custom tableview cell class
中实现其delegate
和data 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
带有 UIProgressView 的自定义 UICollectionViewCell 在重用单元格上显示 progressView