可以将 UISlider 对折以形成 90° 角吗?

Posted

技术标签:

【中文标题】可以将 UISlider 对折以形成 90° 角吗?【英文标题】:Possible to bend a UISlider in half to make a 90° angle? 【发布时间】:2014-05-05 05:24:58 【问题描述】:

我正在尝试创建一个UISlider,它能够向上和向右拖动。想象一下滑块 L 看起来像大写字母,滑块 thumb-button 在执行每个滑​​动操作后位于弯道处。

我查看并找到了这个:UICircularSlider

但是对于我需要做的事情来说似乎太多了。我不确定UISlider 是要走的路,但这是最简单的功能想到的。

有没有办法做到这一点?

【问题讨论】:

为什么看起来太多了?当然,它似乎是您使用的完美指南。 【参考方案1】:

使用 3rd 方库绝对是一种方法,但使用所有普通目标 C 组件的正常方法是使用 2 个 UISlider,使用 CGAffineTransformRotate 旋转 90 度之一。然后你在另一个结束时开始第二个,并将 ThumbImage 隐藏在第一个上,这样它会给你一种它们继续存在的感觉。再一次,这种方式绝对不是一种整洁的方式,只是不用担心使用新库。

P.S:您可以创建自己的 UISlider 子类并在该类中实现它,因此如果您再次需要它可以重用它。

【讨论】:

由于他在每次滑动后都会将拇指按钮弹回零位置,隐藏另一个拇指按钮意味着另一个滑块将始终不起作用。【参考方案2】:

这是我的建议:

    制作 2 个滑块,将其中一个旋转 90 度并隐藏拇指。

    将手势识别器添加到水平(活动)滑块的拇指图像并将方向设置为 UISwipeGestureRecognizerDirectionUp。

    在向上滑动事件中,显示垂直滑块的拇指并隐藏水平滑块的拇指。

不利的一面是,此方法不报告垂直位置,因此您可能想使用 UITouch,调用 locationInView 方法,并相应地更新拇指框架。超越了使用滑块的目的,但实现了您想要实现的目标。

【讨论】:

【参考方案3】:

你可以制作2个视图来制作它。:

    检测旋转手势的底视图

    带有圆形滑块图像的顶视图

控制示例:https://github.com/nathanday/ndrotator

【讨论】:

以上是关于可以将 UISlider 对折以形成 90° 角吗?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:编程 UISlider 以定位在点击的位置

以最佳方式处理 UISlider 值

将 String 转换为 Float 以移动 UISlider

当我尝试以编程方式将 UISlider 添加到 UIView 时,如果宽度太高则不会出现

UISlider 固定位置以保存值?

对数 UISlider