加载表视图中的所有单元格后,会在表视图单元格中重新加载集合视图

hjouh1

我试图在一个表视图中的每个表视图单元内实现一个集合视图,但是在让集合视图在正确的时间重新加载时遇到了麻烦。看起来收集视图在所有表视图单元格都加载后会重新加载,而不是每次尝试将新单元格从表视图中出队时都重新加载。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
    let cell = tableView.dequeueReusableCellWithIdentifier("LWTableViewCell") as! LWTableViewCell
    
    cell.collectionView.delegate = self
    cell.collectionView.dataSource = self
    
    if dataIsReady == 1 {
        setIndex = indexPath.row
        print("in table view cellForRowAtIndexPath, setting setIndex at \(setIndex)")
        cell.collectionView.reloadData()
    }
    return cell
}

func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    
    if dataIsReady == 1 {
        print("In collection view numberOfItemsInSection setIndex is \(setIndex)")
        return self.model.sets[setIndex].subsets!.count
    }
    else { return 0 }   
}

在终端中,我得到以下信息:

在表视图cellForRowAtIndexPath中,将setIndex设置为0

在表视图cellForRowAtIndexPath中,将setIndex设置为1

在表视图cellForRowAtIndexPath中,将setIndex设置为2

在集合视图中,numberOfItemsInSection setIndex为2

在集合视图中,numberOfItemsInSection setIndex为2

在集合视图中,numberOfItemsInSection setIndex为2

而我希望看到事件的顺序如下(假设每次将新的表格视图单元出队时,都应该调用collection view reload方法)。

在表视图cellForRowAtIndexPath中,将setIndex设置为0

在集合视图中,numberOfItemsInSection setIndex为0

在表视图cellForRowAtIndexPath中,将setIndex设置为1

在集合视图中,numberOfItemsInSection setIndex为1

在表视图cellForRowAtIndexPath中,将setIndex设置为2

在集合视图中,numberOfItemsInSection setIndex为2

对于为什么会出现此行为以及如何解决此问题的任何建议,将不胜感激!

我已经浏览了有关该主题的其他一些问题,并且知道有关该主题的一些教程(例如,https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell-in-swift/),但在开始用其他方法做事之前,我想了解为什么上述方法似乎行不通/可以做些什么。

麦可

您不能依赖调用顺序。当前,您正在尝试setIndex从表视图的cellForRowAtIndexPath方法传递到集合视图的委托方法。解决此问题的一种简单方法是,不使用单个变量传递行号,而是在集合视图的tag属性中传递行号。然后,每个集合视图将知道其相关的行号。IE

在表格视图中cellForRowAtIndexPath

cell.collectionView.tag = indexPath.row

然后在集合视图中numberOfItemsInSection

return self.model.sets[collectionView.tag].subsets!.count

还请注意,您无需dataIsReady在这些方法中进行测试仅在表格视图的中需要此代码tableView:numberOfRowsInSection:当数据未准备好时,它应该返回0(即没有要显示的行)。因此,cellForRowAtIndexPath将永远不会调用表视图的视图,并且由于没有行,所以也没有集合视图,因此numberOfItemsInSection将永远不会调用它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过快速点击集合视图的单元格在表视图中重新加载数据

来自分类Dev

滚动时不会重新加载表视图单元格

来自分类Dev

使用Swift在表视图中重新加载单元格数据

来自分类Dev

当用户单击单元格时,如何从表详细视图中的数组加载视频?

来自分类Dev

表格视图单元格未加载

来自分类Dev

表视图按单元格排列的单元格

来自分类Dev

表格视图单元格重新加载问题

来自分类Dev

如何在表视图中创建动态单元格?

来自分类Dev

表格视图单元格重新加载第一个单元格的内容

来自分类Dev

可以在基本表视图类中注册所有表视图单元格吗?

来自分类Dev

分组表视图-圆形单元格?

来自分类Dev

字幕表视图单元格

来自分类Dev

单击按钮后获取表视图单元格索引

来自分类Dev

删除表视图单元格并刷新视图控制器后刷新表视图

来自分类Dev

删除表视图单元格并刷新视图控制器后刷新表视图

来自分类Dev

删除表格单元格后重新加载详细信息视图-Swift

来自分类Dev

TableView仅加载可见的单元格(12节表视图中的前4个节)

来自分类Dev

来自笔尖的表格视图单元格中的集合视图

来自分类Dev

图像继续快速加载到集合视图单元格中

来自分类Dev

如何获取列表视图中单击的单元格的名称以加载到新活动中?

来自分类Dev

单元格表视图Swift iOS中的按钮

来自分类Dev

如何在具有多个部分的表视图单元格中嵌入文本视图?

来自分类Dev

当我们在表格视图中没有不同的单元格时如何在表格视图中重新加载单行?

来自分类Dev

集合视图中的动态高度单元格

来自分类Dev

如何在集合视图中单选单元格?

来自分类Dev

集合视图中单元格的宽度不正确

来自分类Dev

集合视图中的动态高度单元格

来自分类Dev

集合视图中每个单元格的 NSFetchedResultsController

来自分类Dev

从集合视图中删除未选择的单元格

Related 相关文章

  1. 1

    如何通过快速点击集合视图的单元格在表视图中重新加载数据

  2. 2

    滚动时不会重新加载表视图单元格

  3. 3

    使用Swift在表视图中重新加载单元格数据

  4. 4

    当用户单击单元格时,如何从表详细视图中的数组加载视频?

  5. 5

    表格视图单元格未加载

  6. 6

    表视图按单元格排列的单元格

  7. 7

    表格视图单元格重新加载问题

  8. 8

    如何在表视图中创建动态单元格?

  9. 9

    表格视图单元格重新加载第一个单元格的内容

  10. 10

    可以在基本表视图类中注册所有表视图单元格吗?

  11. 11

    分组表视图-圆形单元格?

  12. 12

    字幕表视图单元格

  13. 13

    单击按钮后获取表视图单元格索引

  14. 14

    删除表视图单元格并刷新视图控制器后刷新表视图

  15. 15

    删除表视图单元格并刷新视图控制器后刷新表视图

  16. 16

    删除表格单元格后重新加载详细信息视图-Swift

  17. 17

    TableView仅加载可见的单元格(12节表视图中的前4个节)

  18. 18

    来自笔尖的表格视图单元格中的集合视图

  19. 19

    图像继续快速加载到集合视图单元格中

  20. 20

    如何获取列表视图中单击的单元格的名称以加载到新活动中?

  21. 21

    单元格表视图Swift iOS中的按钮

  22. 22

    如何在具有多个部分的表视图单元格中嵌入文本视图?

  23. 23

    当我们在表格视图中没有不同的单元格时如何在表格视图中重新加载单行?

  24. 24

    集合视图中的动态高度单元格

  25. 25

    如何在集合视图中单选单元格?

  26. 26

    集合视图中单元格的宽度不正确

  27. 27

    集合视图中的动态高度单元格

  28. 28

    集合视图中每个单元格的 NSFetchedResultsController

  29. 29

    从集合视图中删除未选择的单元格

热门标签

归档