Ios 在Swift中获取UIcollectionView中的下一个单元格
我需要获取集合视图中cellForItem中的下一个单元格,以便更新视图对象。当我尝试下面的方法时,它不起作用。我还尝试了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(
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,以便可以从其中调用方法。