gpt4 book ai didi

ios - UICollectionView didSelectItemAt 未被调用

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:22 25 4
gpt4 key购买 nike

我很困惑,因为这只是一个简单的事情,但不起作用。

这是我在这里写问题之前的检查 list 。

  1. UICollectionViewDelegate 已注册

  2. 上面除了来自“Debug View Hierarchy”的 UICollectionView 之外什么都没有

  3. UICollectionView 和 UICollectionViewCell 的
  4. isUserInteractionEnabledtrue

  5. UICollectionView 的
  6. isAllowsSelectiontrue

还有什么我应该检查的吗?

=====

class MyView: NibDesignable { // It's UIView with NibDesignableProtocol (https://github.com/mbogh/NibDesignable)
@IBOutlet weak var collectionView: UICollectionView!

override init(frame: CGRect) {
super.init(frame: frame)

self.setup()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)

self.setup()
}

private func setup() {
print("test - It's called.")

self.collectionView.dataSource = self
self.collectionView.delegate = self
self.collectionView.isUserInteractionEnabled = true
self.collectionView.isAllowsSelection = true
}
}

extension MyView: UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath {
print("test - It's not called")
}
}

我只粘贴了与问题相关的部分,因为所有代码都太长了。

最佳答案

如果您的自定义单元格中有 gestureRecognizer,就会发生这种情况。这将覆盖 collectionView 的 didSelectItemAt 委托(delegate)。

如果这是您的问题,那么您可以通过识别 gestureRecognizer 并执行以下操作来解决它:

let tap = UITapGestureRecognizer(target: self, action: #selector(self.someViewInMyCellTapped(_:)))
someViewInMyCell.addGestureRecognizer(tap)

tap.cancelsTouchesInView = false

关于ios - UICollectionView didSelectItemAt 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49188474/

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