我正在使用tap事件是非常时间敏感的,所以我很好奇是否有可能在用户简单触摸时激活UITapGestureRecognizer,而不是要求它们也能触摸起来?
我创建了一个Slider(作为视频的控件,就像YouTube在底部一样)并设置最大值(持续时间)和最小值.然后用来SeekToTime改变currentTime.现在,用户可以滑动滑块的拇指来更改值
我想要实现的是让用户点击滑块上的任意位置并设置视频的当前时间.
我从这个答案中得到了一个方法,我试着将它应用到我的案例中,但是无法使它成功
class ViewController: UIViewController, PlayerDelegate {
var slider: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
// Setup the slider
}
func sliderTapped(gestureRecognizer: UIGestureRecognizer) {
// print("A")
let pointTapped: CGPoint = gestureRecognizer.locationInView(self.view)
let positionOfSlider: CGPoint = slider.frame.origin
let widthOfSlider: CGFloat = slider.frame.size.width
let newValue = ((pointTapped.x - positionOfSlider.x) * CGFloat(slider.maximumValue) / widthOfSlider)
slider.setValue(Float(newValue), animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这应该有用,但没有运气.然后我尝试在尝试将"A"打印到日志时进行调试,但事实并非显然不会进入该sliderTapped()功能.
我究竟做错了什么?或者有更好的方法来实现我想要实现的目标吗?
uislider uigesturerecognizer ios uitapgesturerecognizer swift
如何将滑块设置为单击位置,并在iPhone编程中的UISlider上单击的位置获取滑块值.我知道我们可以将滑块拖动到那个位置,但我不想这样做.你能告诉我如何将滑块设置为点击位置吗?这可能吗?