(Swift) 阻止应用在滑动时做任何事情
(Swift) Prevent app doing anything while sliding
我在 webView
下面有一个 slider
。将在 webView 上显示的内容取决于滑块的值。
我正在滑动并且工作正常。我想阻止我的应用程序,或者更准确地说是我的 webView,在我的手指放在滑块上时(当我移动滑块的圆圈时)做任何事情。然后,在我完成滑动后(将手指从滑块的圆圈中移开),app/webView 应该可以做其他事情了。这可能吗?
@IBAction func sliderButton(_ sender: Any) {
loadWebView()
}
sliderButton()
方法在用户滑动时触发,但我希望loadWebView()
方法仅在用户停止滑动后调用。
对于滑块,你可以这样做,
sliderButton.addTarget(self, action: #selector(onSliderValChanged(slider:event:)), for: .valueChanged)
@objc func onSliderValChanged(slider: UISlider, event: UIEvent) {
if let touchEvent = event.allTouches?.first {
switch touchEvent.phase {
case .began:
// handle drag began
print("handle drag began")
break
case .moved:
// handle drag moved
print("handle drag moved")
break
case .ended:
// handle drag ended
print("handle drag ended")
//do for `WKWebView`'s user interaction
break
default:
break
}
}
}
我在 webView
下面有一个 slider
。将在 webView 上显示的内容取决于滑块的值。
我正在滑动并且工作正常。我想阻止我的应用程序,或者更准确地说是我的 webView,在我的手指放在滑块上时(当我移动滑块的圆圈时)做任何事情。然后,在我完成滑动后(将手指从滑块的圆圈中移开),app/webView 应该可以做其他事情了。这可能吗?
@IBAction func sliderButton(_ sender: Any) {
loadWebView()
}
sliderButton()
方法在用户滑动时触发,但我希望loadWebView()
方法仅在用户停止滑动后调用。
对于滑块,你可以这样做,
sliderButton.addTarget(self, action: #selector(onSliderValChanged(slider:event:)), for: .valueChanged)
@objc func onSliderValChanged(slider: UISlider, event: UIEvent) {
if let touchEvent = event.allTouches?.first {
switch touchEvent.phase {
case .began:
// handle drag began
print("handle drag began")
break
case .moved:
// handle drag moved
print("handle drag moved")
break
case .ended:
// handle drag ended
print("handle drag ended")
//do for `WKWebView`'s user interaction
break
default:
break
}
}
}