У меня есть два 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 , но я не нашел для него нужной функции.