我在 Collection View 中有一个自定义 slider 。我使用 TouchMoved 更改 slider 的值。当 slider 不在 Collection View 中时,它工作得很好,我只需要开始在其 View 内滑动,然后我可以在将手指向下或向上移动到其 View 之外时继续滑动,它仍然可以工作,但是当它处于 Collection View 中时,它仍然可以工作。一旦我的手指离开 slider View ,collectionView就会停止并激活 Collection View 滚动。如何停止 ScrollView 手势并继续使用 slider ?
最佳答案
好吧,我自己找到了答案。这里是: 我在我的单元格类中添加了这个函数
func getParentCollection() -> UICollectionView?
{
let collection = self.superview as? UICollectionView
return collection
}
我的 slider 已完成,我这样做:
self.secondaryVolumeSlider.didBeginTouch = {
self.getParentCollection()?.gestureRecognizers?.forEach({ (gesture) in
gesture.isEnabled = false
})
}
self.secondaryVolumeSlider.didEndTouching = {
self.getParentCollection()?.gestureRecognizers?.forEach({ (gesture) in
gesture.isEnabled = true
})
}
因此,当我开始触摸 slider 时,我会关闭单元格 super View (即 Collection View )的所有手势,当我结束滑动时,我会重新打开它们。
关于ios - 如何在触摸单元格内的 slider 时取消 collectionView 手势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52559148/