Ios 在Swift中获取UIcollectionView中的下一个单元格

Ios 在Swift中获取UIcollectionView中的下一个单元格,ios,swift,uicollectionview,indexpath,Ios,Swift,Uicollectionview,Indexpath,我需要获取集合视图中cellForItem中的下一个单元格,以便更新视图对象。当我尝试下面的方法时,它不起作用。我还尝试了indexPathForVisibleItems传入indexPath.row+1,并生成索引超出范围错误 let index = IndexPath(row: indexPath.row + 1, section: indexPath.section) if let nextCell = collectionView.cellForItem(

我需要获取集合视图中cellForItem中的下一个单元格,以便更新视图对象。当我尝试下面的方法时,它不起作用。我还尝试了
indexPathForVisibleItems
传入
indexPath.row+1
,并生成索引超出范围错误

    let index = IndexPath(row: indexPath.row + 1, section: indexPath.section)
            if let nextCell = collectionView.cellForItem(at: index) as! MKRCell {
                nextCell.setupWaitView(time: timeToWait)
                nextCell.waitViewHeightConstraint.constant = 80
                nextCell.waitView.alpha = 1
                nextCell.waitView.isHidden = false
            }
这是否可能实现,或者我需要通过另一种方式来实现


谢谢

否,
cellForItemAt
中初始化之前无法获取cell对象 您可以在显示来自
UICollectionViewDelegate

func collectionView(_ collectionView: UICollectionView,willDisplay cell: UICollectionViewCell,forItemAt indexPath: IndexPath) {
     if let myCell = cell as? MKRCell {

     }
}

如果要设置单元格,必须在
UICollectionViewDataSource

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

}

否,
cellForItemAt
中初始化之前,无法获取单元格对象 您可以在显示来自
UICollectionViewDelegate

func collectionView(_ collectionView: UICollectionView,willDisplay cell: UICollectionViewCell,forItemAt indexPath: IndexPath) {
     if let myCell = cell as? MKRCell {

     }
}

如果要设置单元格,必须在
UICollectionViewDataSource

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

}

您应该在以下位置更新单元格:

func collectionView(_ collectionView: UICollectionView, 
    cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
请记住仅修改将从此方法返回的单元格。其他细胞当时可能不存在


或者,您可以保留对单元格的弱引用,并在需要时进行更新

您应该在以下位置更新单元格:

func collectionView(_ collectionView: UICollectionView, 
    cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
请记住仅修改将从此方法返回的单元格。其他细胞当时可能不存在


或者,您可以保留对单元格的弱引用,并在需要时进行更新

最好是更改数据并使用这些数据创建单元格。在调用cellForItem时,下一个单元格不可用。那你为什么要这么做?你能解释更多的细节吗?如果当前单元格有一个特定的值(timeToWait),尝试在下一个单元格上调用一个方法。我认为你应该在没有单元格的情况下保存timeToWait值。然后在
cellForItem
中设置它的值。最好更改数据并使用该数据创建单元格。调用cellForItem时,下一个单元格不可用。那你为什么要这么做?你能解释更多的细节吗?如果当前单元格有一个特定的值(timeToWait),尝试在下一个单元格上调用一个方法。我认为你应该在没有单元格的情况下保存timeToWait值。然后在
cellForItem
中,您只需设置它的值。我确实在cellForItem内部尝试了上面的方法,但它不起作用,包括在特定索引+1处重新加载该项。我确实在cellForItem内部尝试了上面的方法,但它不起作用,包括在特定索引+1处重新加载该项尝试将显示,无法将下一个单元格转换为!但我还是要去!此已存在的nextCell不应用任何计算,仅将其类型强制转换为您的调用类别我需要以MKRCell的形式访问nextCell,以便可以从其中调用方法。尝试将显示,将nextCell强制转换为时遇到问题!但我还是要去!这已经是nextCell,不应用任何计算,仅将其类型强制转换为调用classI需要以MKRCell的身份访问nextCell,以便可以从其中调用方法。