【发布时间】:2016-05-20 10:11:39
【问题描述】:
我正在创建一个内部有 collectionView 的 tableView。
我做了什么: 1. 在控制器内创建了一个表格视图。 2.创建了一个自定义tableViewCell,其中包含collectionView并为其提供标签 3. 创建了一个自定义的collectionViewcell。
现在我将控制器设置为 collectionView 和 tableView 的委托和数据源。
现在tableView应该有多个tableViewcell,每个tableViewCell都有CollectionView
一个 tableViewCell 有一个部分。 问题:-
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
self.arrayModel = self.SlotsArray[indexPath.section];
}
但这里有个问题:假设我的屏幕大小显示了两个 tableViewcell,然后首先调用 tableCells 的所有方法,然后调用 collectionView 的所有方法,我希望在创建 tableViewcell 的第一部分之后,它应该调用 collectionView方法并创建它。然后转到 tableView 方法制作第二部分,然后创建它的 collectionView。
有没有办法做到这一点。
我在网上读到的某个地方,我必须继承 CollectionView 并添加一个属性索引,然后在将 viewcontroller 设置为委托和数据源时,还要设置索引。
但我已经通过 nib 创建了 CollectionView 并通过“TAG”将其添加到 tableCell 类中
self.imageCollectionView = [self.contentView viewWithTag:2511];
你能告诉我如何做到这一点吗?
【问题讨论】:
-
我理解你的问题,但我很确定你陷入了一些令人讨厌的用户界面。从技术上讲,tableview 将一一创建每一行。由于您的自定义单元格有一个集合视图,因此每个单元格都会创建自己的集合视图。我不确定你的说法是否正确。我必须验证,但是,我几乎可以肯定 tableview 会创建 Cell1,并且由于 cell1 有一个 collectionview,它会创建它的 collection view,然后只有当它准备好时,tableview 才会创建 cell2。不会发生的唯一原因是如果一切都在控制器中。
-
或者我的假设完全错误
-
为什么单元格不是集合视图的委托/数据源?如果细胞持有它,它可能是负责任的。
-
tableview 单元格在创建时可以接收项目数组。如果此数组有 > 0 个元素,则创建一个新的集合视图并填充它,然后显示它。您可以将集合视图中的所有事件(选择、取消选择等)转发到单元格,然后从单元格转发到控制器,并在必要时从那里做任何您想做的事情。
-
更重要的是,您的 UI 没有理由定义数据的加载/行为方式。 UI 只对数据做出反应,而不是相反。也许尽快加载所有内容可能会解决您的问题。我不知道。您实际上寻求帮助,但没有告诉我们根本问题是什么。也许它比串行加载所有内容更简单,或者可以以不同的方式解决(默认情况下,它应该使用我上面写的内容串行加载)
标签: ios objective-c iphone uitableview