gpt4 book ai didi

ios - UICollectionView 防止多次点击/调用 didSelectItemAt

转载 作者:行者123 更新时间:2023-11-28 12:23:18 27 4
gpt4 key购买 nike

我在 Collection View Cell 上使用单击来调用 collectionView didSelectItemAt 内的 performSegue。有时特别是当应用程序首次启动时,performSegue 会延迟,不知道为什么用户会一次又一次地点击。在这种情况下,performSegue 被多次调用,新的 View Controller 被推送多次(点击次数)。这种延迟有什么特别的原因吗?如果没有,那么我将不得不执行以下操作:

var alreadyTapped = false
override func viewDidAppear(_ animated: Bool) {
alreadyTapped = false
}
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if alreadyTapped { return }
alreadyTapped = true
performSegue(withIdentifier: Constants.Segue.DETAIL_VC, sender: collectionView.cellForItem(at: indexPath))
}

或者是否有更好的方法来解决这个问题?

最佳答案

试试下面的代码,

  override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
DispatchQueue.main.async {
performSegue(withIdentifier: Constants.Segue.DETAIL_VC, sender: collectionView.cellForItem(at: indexPath))
}
}

关于ios - UICollectionView 防止多次点击/调用 didSelectItemAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44173625/

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