UIGestureRecognizer 从头开始​​制作 UISlider

Posted

技术标签:

【中文标题】UIGestureRecognizer 从头开始​​制作 UISlider【英文标题】:UIGestureRecognizer to make UISlider from scratch 【发布时间】:2020-12-28 23:27:53 【问题描述】:

喂,

我正在尝试基于 UIGestureRecognizer 从头开始​​实现自定义UISlider,因为我必须使拇指视图成为具有简洁设计的自定义视图。 UIGestureRecognizer 的使用是来自技术主管的请求。

到目前为止,我所拥有的只是我进行测试的样本:

func setupSlider()         
    let panGesture = UIPanGestureRecognizer(target: self, action: #selector(dragged(gestureRecognizer:)))
    sliderView.isUserInteractionEnabled = true
    sliderView.addGestureRecognizer(panGesture)


@objc func dragged(gestureRecognizer: UIPanGestureRecognizer) 
    if gestureRecognizer.state == UIGestureRecognizer.State.began || gestureRecognizer.state == UIGestureRecognizer.State.changed 
        let translation = gestureRecognizer.translation(in: self.sliderContainer)
        gestureRecognizer.view!.center = CGPoint(x: gestureRecognizer.view!.center.x + translation.x, y: gestureRecognizer.view!.center.y + translation.y)
        gestureRecognizer.setTranslation(CGPoint(x: 0, y: 0), in: self.view)
    

在这一点上我有两个问题:

    将滑块视图保持在容器中间 能够根据区间的最小值和最大值获取滑块的“当前值”

您有什么建议可以帮忙吗?

亲切的问候。

【问题讨论】:

【参考方案1】:

从技术上讲,这不是您问题的答案,但是....

我正在尝试基于 UIGestureRecognizer 从头开始​​实现自定义 UISlider,因为我必须使拇指视图成为具有简洁设计的自定义视图。

您知道您可以自定义缩略图吗?

例如看这篇文章: https://zeitschlag.net/customizing-uislider/ 这是 API:setThumbImage(_:for:)

UIGestureRecognizer 的使用是来自技术主管的请求。

毕竟,如果您能设法通过使用UISlider 获得结果,我相信您的领导会欢迎它。

【讨论】:

以上是关于UIGestureRecognizer 从头开始​​制作 UISlider的主要内容,如果未能解决你的问题,请参考以下文章

如何用 UIGestureRecognizer 替换 TouchesBegan

Swift Playgrounds 中的 UIGestureRecognizer

Xcode 9 Swift 4 Playgrounds UIGestureRecognizer 不工作

在 TableView 中检测 UIGestureRecognizer 的出处单元

关于iOS的手势UIGestureRecognizer问题

UIGestureRecognizer