【问题标题】:How to find index path of an item in collection view如何在集合视图中查找项目的索引路径
【发布时间】:2017-03-26 19:35:44
【问题描述】:

好的,所以我有一个集合视图并试图找到一个项目的索引路径,因为我需要删除某个索引路径中的一个项目。例如这很难解释抱歉。好的,所以在我的收藏视图中,我在第 1 部分做了一个常量 count = mycollectionview.numberof 项目,只有一个部分。这是我目前拥有的一些代码,你会看到我有一些代码来检查项目是否高于数字 3 或等于。

     var currentImage = 0
func scrollViewDidScroll(_ scrollView: UIScrollView) {

    var iti = //indexpathofitem

    let count = myCollectionView.numberOfItems(inSection: 1)

    let x = floor(myCollectionView.contentOffset.x / view.frame.width)
    if Int(x) != currentImage {
        currentImage = Int(x)
        print(currentImage)
    }
}

请在 cmets 中提出您的任何问题,我会回答他们,如果这令人困惑,请见谅。只需要在collectionview 中找到item 的indexpath。 水平滚动,启用分页,图像占据整个单元格。

【问题讨论】:

  • 使用这个方法-: override func collectionView(collectionView: UICollectionView!, didSelectItemAtIndexPath indexPath: NSIndexPath!)
  • 如果只有 1 个部分,则此行没有意义:let count = myCollectionView.numberOfItems(inSection: 1)。部分索引是从零开始的。第 0 部分 = 第一部分,第 1 部分 = 第二部分,依此类推。
  • 是的,我知道刚刚看到了,哈哈
  • 您是否要删除最后一项的第三项?

标签: ios swift uicollectionview


【解决方案1】:

使用初始化器创建一个新的IndexPath 实例。

查看IndexPath 的文档。你会看到你可以像这样创建一个新实例:

let indexPathOfLastItem: IndexPath //which you have

let indexPathOfItemToDelete = IndexPath(item: indexPathOfLastItem.item - 2, section: 0)
//may need to adjust the section or item values to fit your needs

两个参数的类型都是Int。通过使用所需的项目编号和要在初始化程序中删除的项目的部分来创建所需的索引路径。

【讨论】:

  • 我的iti初始化怎么样?
  • 啊,我明白了。 ini 是您的索引路径。您需要逻辑来确定要删除的单元格并将其放入参数中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 1970-01-01
  • 2023-04-08
  • 2021-10-22
相关资源
最近更新 更多