我特意遇到iPhone 5的问题。在我的UICollectionView
didSelectItemAt
函数中,我有一个代码片段遍历所有可见的单元格,并在第一个单元格中停留,其中{0}为imageView.image
。
for cell in heroPickerCollectionView.visibleCells {
let customIndex = heroPickerCollectionView.indexPath(for: cell)
let nilCell = heroPickerCollectionView.cellForItem(at: customIndex!) as! HeroPickerCell
if nilCell.imageView.image == nil {
selectedHeroArray.insert(heroData.heroes[(indexPath as NSIndexPath).row], at: (customIndex! as NSIndexPath).row)
nilCell.imageView.image = UIImage(named: heroData.heroes[(indexPath as NSIndexPath).row].imageName!)
checkForHeroes()
break
}
}
这适用于除iPhone 5以外的所有设备。在iPhone 5上,customIndex
始终以0, 3
而不是0, 0
开始(应该如此)。显然这会崩溃,因为它试图在超出范围的索引处插入。
我完全不知道这个。 heroPickerCollectionView.visibleCells.count
在iPhone 5上返回正确的计数,但索引已关闭。