gpt4 book ai didi

swift - reloadItemsAtIndexPath 快速错误?

转载 作者:行者123 更新时间:2023-11-28 08:42:13 27 4
gpt4 key购买 nike

我有一些代码可以在您单击相关的 UICollectionViewCell 时增加分数。代码如下:

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
teamScores[indexPath.row] += 1
collectionView.reloadItemsAtIndexPaths([indexPath])
}

这最初工作正常,但是当我返回主屏幕并再次返回应用程序时,如果我尝试再次单击该单元格,该应用程序似乎会卡住。仔细观察,它似乎处于某种循环中,CPU 以 100% 的速度运行,并且每秒都需要增加内存。

请注意,如果我没有单击单元格而是执行另一个操作,据我所知没有任何问题。异常(exception)是一个重置按钮,它运行代码:

 @IBAction func resetScores(sender: AnyObject) {
resetScores()
collectionView.reloadSections(NSIndexSet(index: 0))
}

这种“崩溃”只会在应用程序再次激活时发生——当您切换到另一个选项卡并再次返回时不会发生。

如果我用 reloadData() 替换 reloadItemsAtIndexPaths(...) 代码,问题就会消失。这是一个错误,还是我遗漏了什么?

非常感谢!

最佳答案

您可以在选择单元格后尝试取消选择它,因为它仍处于选中状态。

尝试添加:

collectionView.deselectItemAtIndexPath(indexPath, animated : false)

在你之后:

teamScores[indexPath.row] += 1

看看这是否能解决您的问题。

--编辑--

override func viewWillAppear() {
super.viewWillAppear()
collectionView.reloadData()
}

关于swift - reloadItemsAtIndexPath 快速错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36263649/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com