Ios 从未调用UICollectionView didSelectRowAt

Ios 从未调用UICollectionView didSelectRowAt,ios,swift,xcode,uicollectionview,Ios,Swift,Xcode,Uicollectionview,我试图在UICollectionView中选择一个单元格,我已经完成了所有工作,包括设置代理和数据源,我的滚动视图中没有点击手势识别器 我在滚动视图中有一个视图,当用户点击屏幕退出键盘时,我将其子类化为UIControl来处理,但我也删除了该视图,并且didSelectItemAt仍然没有启动。 这是我的密码: @IBOutlet weak var templatesCollection: UICollectionView! override func viewDidLoad() {

我试图在UICollectionView中选择一个单元格,我已经完成了所有工作,包括设置代理和数据源,我的滚动视图中没有点击手势识别器

我在滚动视图中有一个视图,当用户点击屏幕退出键盘时,我将其子类化为UIControl来处理,但我也删除了该视图,并且didSelectItemAt仍然没有启动。 这是我的密码:

@IBOutlet weak var templatesCollection: UICollectionView!

   override func viewDidLoad() {
        super.viewDidLoad()
        templatesCollection.delegate = self
        templatesCollection.dataSource = self
    }

    extension AddCardViewController : UICollectionViewDelegate,UICollectionViewDataSource
{


    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return templates.count
    }


    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = templatesCollection.dequeueReusableCell(withReuseIdentifier: "template", for: indexPath) as! TemplateCollectionViewCell
        cell.templateView.text = templates[indexPath.row]
        cell.alignTextVertically()
        cell.isUserInteractionEnabled = true
        cell.layer.shadowColor = UIColor.black.cgColor
        cell.layer.shadowOffset = CGSize(width: 0, height: 2.0)
        cell.layer.shadowRadius = 2.0
        cell.layer.shadowOpacity = 0.5
        cell.layer.masksToBounds = false

        return cell
    }

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        print("shfgdsfgidks")
    }

        func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
            print("Deselected")
        }

    }
另外,值得一提的是,collection视图正在显示数据,因此我知道cellForItemAt函数至少正在启动,只有didSelectItemAt未被调用

collectionView及其单元格都启用了用户交互。 还有,这是我的等级结构图


因此
UICollectionView
UITableView
都继承自
UIScrollView
,不应放在另一个滚动视图中。苹果认为这是个坏主意,会引起问题。所以最好的答案是不要这样做

通常,如果需要执行此操作,通常最好将
UICollectionView
嵌入
UITableViewCell
中以创建布局。如果不确切知道你想做什么,就很难提出最佳方法


如果必须这样做,那么您需要查看并配置它们可以同时识别的某些手势。

因此
UICollectionView
UITableView
都继承自
UIScrollView
,不应放在另一个滚动视图中。苹果认为这是个坏主意,会引起问题。所以最好的答案是不要这样做

通常,如果需要执行此操作,通常最好将
UICollectionView
嵌入
UITableViewCell
中以创建布局。如果不确切知道你想做什么,就很难提出最佳方法


如果您必须这样做,那么您需要查看并配置他们可以同时识别的某些手势。

如果有人有相同的问题,这里是解决方法,
正如Parth所说,我没有得到点击,因为点击是为了TextView。我不得不禁用单元格内TextView的用户交互,以注册对单元格的点击

如果有人有同样的问题,这里是解决方法,
正如Parth所说,我没有得到点击,因为点击是为了TextView。我不得不禁用单元格内TextView的用户交互,以注册对单元格的点击

所以你有一个全屏收藏视图,没有其他滚动视图,没有点击手势识别器?没有子视图添加到集合视图?我自己写的。@AkshayRaina在故事板中,请检查
UICollectionView
UICollectionViewCell
是否勾选了
User Interaction Enabled
。否,实际上,我有一个带有注册表单的滚动视图,最后我有一个水平滚动的集合视图,任何地方都没有点击手势识别器,集合视图单元格有一个文本视图inside@AkshayRaina您没有得到单击,因为单击将指向TextView。如果您需要在didSelect上执行操作,请禁用手机内TextView的用户交互,这样您就可以看到一个全屏集合视图,没有其他滚动视图,任何地方都没有点击手势识别器?没有子视图添加到集合视图?我自己写的。@AkshayRaina在故事板中,请检查
UICollectionView
UICollectionViewCell
是否勾选了
User Interaction Enabled
。否,实际上,我有一个带有注册表单的滚动视图,最后我有一个水平滚动的集合视图,任何地方都没有点击手势识别器,集合视图单元格有一个文本视图inside@AkshayRaina您没有得到单击,因为单击将指向TextView。如果需要对didSelect执行操作,请禁用单元格内TextView的用户交互