gpt4 book ai didi

ios - 点击 UISlider 以设置值

转载 作者:IT王子 更新时间:2023-10-29 05:14:54 25 4
gpt4 key购买 nike

我创建了一个 slider (用作视频控件,就像底部的 YouTube)并设置最大值(持续时间)和最小值。然后使用 SeekToTime 更改当前时间。现在,用户可以滑动 slider 的拇指来改变值

我想要实现的是让用户点击 slider 上的任意位置并设置视频的当前时间。

我从 this answer 得到了一个方法, 我尝试将它应用到我的案例中,但无法使其工作

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)
}
}

我认为这应该可行,但运气不好。然后我尝试通过尝试将“A”打印到日志进行调试,但显然它没有进入 sliderTapped() 函数。

我做错了什么?或者是否有更好的方法来实现我想要实现的目标?

最佳答案

看起来您需要根据上面的代码示例在 viewDidLoad() 中实际初始化点击手势识别器。那里有一条评论,但我没有看到任何地方正在创建识别器。

swift 2:

class ViewController: UIViewController {

var slider: UISlider!

override func viewDidLoad() {
super.viewDidLoad()

// Setup the slider

// Add a gesture recognizer to the slider
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: "sliderTapped:")
self.slider.addGestureRecognizer(tapGestureRecognizer)
}

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)
}
}

swift 3:

class ViewController: UIViewController {

var slider: UISlider!

override func viewDidLoad() {
super.viewDidLoad()

// Setup the slider

// Add a gesture recognizer to the slider
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(sliderTapped(gestureRecognizer:)))
self.slider.addGestureRecognizer(tapGestureRecognizer)
}

func sliderTapped(gestureRecognizer: UIGestureRecognizer) {
// print("A")

let pointTapped: CGPoint = gestureRecognizer.location(in: 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)
}
}

关于ios - 点击 UISlider 以设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34619535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com