【问题标题】:how to get current cell.contentview in uicollectionview. how to add subview in uicollectionview cell如何在 uicollectionview 中获取当前的 cell.contentview。如何在 uicollectionview 单元格中添加子视图
【发布时间】:2017-01-07 05:21:50
【问题描述】:

嗨,在我的应用程序中,我想在 cell.contentview 中添加特定视图,现在情况是我可以在其中添加此代码。原因是如果我将此代码放在 cellforitematindexpath 上,它将被添加到最后一个单元格(indxpath.row) 原因是在 cellforrowatindexpath 中最后一个单元格将最后加载,因此视图将添加到最后一个单元格中。而我想要它在当前时间显示的那个单元格上

这是我的代码。只需添加子视图

 let cell : pdfImageCell = collectionView.dequeueReusableCell(withReuseIdentifier: "pdfImageCell", for: indexPath) as! pdfImageCell


 cell.contentView.addSubview(userResizableView1)

【问题讨论】:

  • “而我希望它在当前时间显示的那个单元格上” - 可能多个单元格同时显示。那么您究竟希望将此子视图添加到哪个?
  • 分享代码完整的cellForItemAtIndexPath方法
  • 我一次只显示一个单元格@raidfive

标签: ios objective-c swift uicollectionview


【解决方案1】:

UICollectionView 中获取如下所示的可见单元格索引。如果它们在屏幕上可见,您还可以让多个单元格可见,因此选择您想要的单元格。

var visibleCurrentCell: IndexPath? {
    for cell in self.collectionView.visibleCells {
        let indexPath = self.collectionView.indexPath(for: cell)
        return indexPath
     }    
     return nil
}

然后从索引中获取单元格并在该单元格中添加子视图。

【讨论】:

    【解决方案2】:

    您可以在awakeFromNib() 方法中添加UIView。它只会接听一次电话。

    class pdfImageCell : UICollectionViewCell {
    
        //you can add here
        override func awakeFromNib() {
    
            var userResizableView1 = UIView()
            self.contentView.addSubview(userResizableView1)
        }
    
    }
    

    【讨论】:

    • 但是我在 viewcontroller 类中得到了 userResizableView1,那么我如何在 uitableviewcell 类中使用它呢?
    • 您可以在 awakeFromNib() 方法中添加 userResizableView1,然后设置 userResizableView1.hidden = true。在你的 cellforitematindexpath 中,如果你想显示,那么你可以设置 userResizableView1.hidden = false
    【解决方案3】:
    - (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths
    

    这是一种在你的 collectionView 中重新加载特定 indexPaths 的方法

    您可以在单击时更新您的数据源,并且您的 cellForItemAtIndex 将从您的数据源中知道这次它必须有子视图

    if (datasourcearray[indexpPath.row].isSubViewToBeAdded)
    {
        self.contentview.addsubview(subViewToBeAdded)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      相关资源
      最近更新 更多