Ios 从另一个单元格中检测单元格选择

Ios 从另一个单元格中检测单元格选择,ios,swift,uicollectionview,uitapgesturerecognizer,Ios,Swift,Uicollectionview,Uitapgesturerecognizer,我有一个UICollectionView。它的单元格内部有一个UICollectionView 我可以检测包含collectionView的单元格何时被点击(通过didSelectItemAtIndexPath)。但是,我无法检测单元格内collectionView的单元格(如单个太阳图标所示)何时被点击 用户交互在所有内容上都已启用。我已经尝试过覆盖collectionView的hitTest 更新:我在一个简单的测试项目中再次尝试了这个方法,效果很好。但是,在我当前的项目中,由于某些原因,

我有一个UICollectionView。它的单元格内部有一个UICollectionView

我可以检测包含collectionView的单元格何时被点击(通过didSelectItemAtIndexPath)。但是,我无法检测单元格内collectionView的单元格(如单个太阳图标所示)何时被点击

用户交互在所有内容上都已启用。我已经尝试过覆盖collectionView的hitTest

更新:我在一个简单的测试项目中再次尝试了这个方法,效果很好。但是,在我当前的项目中,由于某些原因,视图调试器中没有显示最内部嵌套的collectionView(带有sun图标)


请注意,我将collectionView背景设置为蓝色,其单元格设置为粉红色。虽然它们出现在正在运行的应用程序中,但在调试视图时它们不会出现?

我以前已经这样做过。。。但这将有点难以解释。 简单的回答是手势

因此,我通过故事板绘制了桌面视图。集合视图是通过编程方式添加的

对于TableView cellforRow,我调用了UITableViewCell子类。我作为委托传递了rootView。它称为CollectionViewClass。这是绘制单元格的实际项目并将其添加到集合视图的位置。现在我有了rootdelegate。对于每个项目,我都添加一个手势

因此,每个项目现在都有一个点击手势在里面。现在在我绘制的视图中,我可以调用点击单元格的根视图


我希望这有帮助。

我以前做过这个。。。但这将有点难以解释。 简单的回答是手势

因此,我通过故事板绘制了桌面视图。集合视图是通过编程方式添加的

对于TableView cellforRow,我调用了UITableViewCell子类。我作为委托传递了rootView。它称为CollectionViewClass。这是绘制单元格的实际项目并将其添加到集合视图的位置。现在我有了rootdelegate。对于每个项目,我都添加一个手势

因此,每个项目现在都有一个点击手势在里面。现在在我绘制的视图中,我可以调用点击单元格的根视图


我希望这能有所帮助。

一旦我将我的单元格从使用XIB改为使用故事板中的常规单元格,这个问题就没有发生

一旦我将我的单元格从使用XIB改为使用故事板中的常规单元格,这个问题就没有发生

是否已将包含UICollectionView的UICollectionViewCell的委托设置为self?这意味着您应该将UICollectionViewCell子类化,并在该子类内设置UICollectionView,并将该UICollectionView的委托设置为UICollectionViewCell。此外,您不应该在命中测试中胡闹。UIResonder链需要大量干预的情况非常罕见,对于这一点,我怀疑您需要进一步正确设置委派。@Loxx是的,内部collectionView的委派被设置为它位于MM中的单元格,让我拉一下旧项目,看看我是如何解决这个问题的。我会在这里发帖soon@Loxx谢谢,这将非常有用:)在情节提要中禁用CollectionView的“取消视图中的触摸”。是否已将包含UICollectionView的UICollectionViewCell的委托设置为self?这意味着您应该将UICollectionViewCell子类化,并在该子类内设置UICollectionView,并将该UICollectionView的委托设置为UICollectionViewCell。此外,您不应该在命中测试中胡闹。UIResonder链需要大量干预的情况非常罕见,对于这一点,我怀疑您需要进一步正确设置委派。@Loxx是的,内部collectionView的委派被设置为它位于MM中的单元格,让我拉一下旧项目,看看我是如何解决这个问题的。我会在这里发帖soon@Loxx谢谢,这将非常有帮助:)在序列图像板中为CollectionView禁用“取消视图中的触摸”。如果可能,我希望使用UICollectionView委托方法,而不是解决方法。如果最终无法使用内置功能,我将尝试此方法。如果可能,我希望使用UICollectionView委托方法,而不是解决方法。如果最终无法使用内置功能,我将尝试此方法
    let tap = UITapGestureRecognizer(target: self, action: #selector(viewTapped))
func viewTapped() {
    tapDelegate?.milestoneTapped(passID) //tapDelegate = RootView
}