如何在触摸单元格内的滑块时取消collectionView手势?

时间:2018-09-28 16:11:53

标签: ios swift uicollectionview touch uigesturerecognizer

我在集合视图中有一个自定义滑块。我使用touchesMoved更改滑块的值。滑块不在收藏夹视图中时效果很好,我只需要开始在其视图内滑动,然后就可以继续滑动,同时在其视图外上下移动手指仍然可以,但是当它处于一旦手指离开了滑块视图,collectionView就会停止,并且collection view滚动被激活。如何停止滚动视图手势并继续使用滑块?

1 个答案:

答案 0 :(得分:0)

好的,我自己找到了答案。这里是: 我在单元格类中添加了此功能

func getParentCollection() -> UICollectionView?
{
    let collection = self.superview as? UICollectionView
    return collection
}

我的滑块完成了,我这样做:

self.secondaryVolumeSlider.didBeginTouch = {
        self.getParentCollection()?.gestureRecognizers?.forEach({ (gesture) in
            gesture.isEnabled = false
        })
    }
    self.secondaryVolumeSlider.didEndTouching = {
        self.getParentCollection()?.gestureRecognizers?.forEach({ (gesture) in
            gesture.isEnabled = true
        })
    }

因此,当我开始触摸滑块时,我将关闭单元格超级视图的所有手势(即集合视图),并在结束滑动时将其重新打开。