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

时间:2016-08-12 17:34:02

标签: ios swift uicollectionview uitapgesturerecognizer

我有一个UICollectionView。它的单元格里面有一个UICollectionView。

enter image description here

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

所有内容都启用了用户互动。我已经尝试覆盖collectionView as described here的hitTest。

更新:我在一个简单的测试项目中再次尝试了这个并且它工作正常。但是在我当前的项目中由于某种原因,最内层嵌套的collectionView(带有太阳图标)没有出现在视图调试器中。

enter image description here

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

2 个答案:

答案 0 :(得分:0)

我之前已经这样做了......但是要解释起来有点困难。 简短的回答是TapGestures。

所以我通过故事板绘制了tableView。集合视图以编程方式添加。

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

    let tap = UITapGestureRecognizer(target: self, action: #selector(viewTapped))

因此,每个项目现在都有一个点击手势。现在在我看来是绘图我可以调用rootview来查找哪个单元格。

func viewTapped() {
    tapDelegate?.milestoneTapped(passID) //tapDelegate = RootView
}

我希望这会有所帮助。

答案 1 :(得分:0)

一旦我从使用XIB为我的单元格改为使用故事板中的常规单元格,这个问题就不会发生了。