Ios 如何访问非';还看不见吗?

Ios 如何访问非';还看不见吗?,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,我的UICollectionViewCell应该在进入视图时更改其外观(仅在其中一个子视图上进行简单的alpha/不透明度更改)。当我缓慢(垂直)滚动时,我的代码工作正常,但当我快速滚动时,我尝试访问单元格(使用cellForItemAt)返回nil。Debugging+research显示,当cell对象尚不可见时(即使对象已创建),cellForItem返回nil,这就是快速滚动时发生的情况 当单元格对象还不可见时,访问它的最佳方式是什么 根据您的描述,访问这些单元格的理想方式是使用func

我的UICollectionViewCell应该在进入视图时更改其外观(仅在其中一个子视图上进行简单的alpha/不透明度更改)。当我缓慢(垂直)滚动时,我的代码工作正常,但当我快速滚动时,我尝试访问单元格(使用cellForItemAt)返回nil。Debugging+research显示,当cell对象尚不可见时(即使对象已创建),cellForItem返回nil,这就是快速滚动时发生的情况


当单元格对象还不可见时,访问它的最佳方式是什么

根据您的描述,访问这些单元格的理想方式是使用function
collectionView:willDisplayCell:forItemAtIndexPath:
该函数告诉您指定的单元格即将显示在集合视图中

所以你可以这样使用它:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    guard let cell = cell as? YourCell else { return }
    // change alpha etc...
}

根据您的描述,访问这些单元格的理想方式是函数
collectionView:willDisplayCell:forItemAtIndexPath:
该函数告诉您指定的单元格即将显示在集合视图中

所以你可以这样使用它:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    guard let cell = cell as? YourCell else { return }
    // change alpha etc...
}