如何取消 collectionView 手势,同时触摸单元格内的滑块?
How to cancel collectionView gestures, while touching a slider inside a cell?
我在集合视图中有一个自定义滑块。我使用 touchesMoved 更改滑块的值。当滑块不在集合视图中时效果很好,我只需要在其视图内开始滑动,然后我可以在其视图之外向下或向上移动手指的同时继续滑动并且它仍然有效,但是当它处于collectionView 一旦我的手指离开滑块视图,它就会停止并激活集合视图滚动。如何停止滚动视图手势并继续使用我的滑块?
好的,我自己找到了答案。这里是:
我在我的单元格中添加了这个功能 class
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
})
}
因此,当我开始触摸滑块时,我会关闭 cells superview 的所有手势,这是集合视图,当我结束滑动时,我会重新打开它们。
我在集合视图中有一个自定义滑块。我使用 touchesMoved 更改滑块的值。当滑块不在集合视图中时效果很好,我只需要在其视图内开始滑动,然后我可以在其视图之外向下或向上移动手指的同时继续滑动并且它仍然有效,但是当它处于collectionView 一旦我的手指离开滑块视图,它就会停止并激活集合视图滚动。如何停止滚动视图手势并继续使用我的滑块?
好的,我自己找到了答案。这里是: 我在我的单元格中添加了这个功能 class
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
})
}
因此,当我开始触摸滑块时,我会关闭 cells superview 的所有手势,这是集合视图,当我结束滑动时,我会重新打开它们。