我创建包含ClothesCollectionView
元素的ClothesCollectionViewCell
。其中一个元素称为JeansCollectionViewCell
,它本身就是collectionView
。此图像可能使其更容易理解
1为ClothesCollectionView
,2为JeansCollectionViewCell
,3为JeansCollectionViewCell
上称为JeanItemCell
的单元格。
选择JeanItemCell
后,didSelectItemAt
的代理ClothesCollectionView
会被调用,但不会被JeansCollectionViewCell
调用,因此我无法确定JeanItemCell
被选中了。
修改
我将此代码here添加到JeansCollectionViewCell
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
let hitTargetView = super.hitTest(point, with: event)
return hitTargetView as? UIControl ?? (hitTargetView == self ? nil : superview)
}
override func didMoveToSuperview() {
superview?.addGestureRecognizer(collectionView.panGestureRecognizer)
}
现在,使用此代码,我可以在JeansCollectionViewCell上水平滚动,但事实并非如此。从ClothesCollectionView到处我可以水平滚动牛仔裤项目。我仍然无法检测到物品上的水龙头。