Конфликт жеста одного ползунка с другим стремительным - PullRequest
0 голосов
/ 16 сентября 2018

У меня есть два UISliders , и я прикрепил к ним UIPanGestureRecognizer . При панорамировании episodeSlider ничего не происходит с soundSlider , но при панорамировании soundSlider , episodeSlider действует так, как будто я с ним взаимодействую, и thumb идет прямо в начале episodeSlider .

class PlayerDetailsView: UIView {
...
@IBOutlet weak var episodeSlider: UISlider! {
    didSet {
        let panGesture = UIPanGestureRecognizer(target: self, action:  #selector(panTap(gesture:)))
        episodeSlider.isContinuous = true
        episodeSlider.addGestureRecognizer(panGesture)
        episodeSlider.setValue(0, animated: false)
    }
}


@IBOutlet weak var volumeSoundSlider: UISlider! {
    didSet {
        volumeSoundSlider.isContinuous = true
        let panGesture = UIPanGestureRecognizer(target: self, action:  #selector(panTapVolume(gesture:)))
        volumeSoundSlider.isContinuous = true
        volumeSoundSlider.addGestureRecognizer(panGesture)
        player.volume = volumeSoundSlider.value
    }
}


@objc func panTap(gesture : UIPanGestureRecognizer){
    print(type(of:  gesture.view), gesture.view)

    if gesture.view != episodeSlider {
        return 
    }
  ...
 }

 @objc func panTapVolume(gesture : UIPanGestureRecognizer) {
    print(type(of:  gesture.view), gesture.view)
    if gesture.view != volumeSoundSlider {
        return
    }
 ...
 }

Но функции PanTap никогда не вызывают с неправильным параметром (поэтому return внутри этих функций никогда не выполняется), поэтому я не имею представления о том, что с этим делать.

Я пытался творить чудеса с UIGestureRecognizerDelegate , но я не нашел для него нужной функции.

...