简约同样简单:为UISlider添加显示当前值的标签(上)

本文探讨了如何在iOS的UISlider中显示当前值,避免盲人摸象的效果。通过不依赖动态图片生成或寻找UISlider子视图,而是利用`thumbRect(forBounds:)`方法定位把手位置,结合`UIControl`事件`.touchDragInside`和`.touchUpInside`,实现实时显示值的Label。这种方法稳定且适用于不同持续性设置。
摘要由CSDN通过智能技术生成

本文畅想了几种为UISlider添加显示当前值的方法,并选择了其中一个稳定,简单的实现.适合iOS刚入门或中级水平的童鞋们观赏.

看不见值?这不科学!

默认的UISlider,你可以任意拖动,却看不见当前表示的值…

有点盲人摸象的赶脚了…

我们一般的做法是用另一个控件表示其当前值,比如一个UILabel.

不过这样貌似要另外占用一些空间,不紧凑!

看到UISlider上面那个圆圆的把手了么?我们准备把当前值显示在它里面!

几种可能的实现

  • 第一种: UISlider可以替换把手图片,如果我们可以用其当前表示的值生成对应的图片,我们就可以做到动态替换;因为这是Cocoa自带的接口,所以很稳定,唯一缺点是动态生成图片略显繁琐.
  • 第二种: 在运行时找到UISlider把手对应的View,将Label作为它的子视图;这样做的好处是一旦添加Label,它会随把手一起移动,你将不用再操心它的位置.但如何找到,以及何时去找到UISlider对应的View,需要一些小手段.
  • 第三种: 在UISlider的valueChanged回调中,根据当前值来计算Label位置.不过这样的话UISlider.isContinuous必须为true,因为你需要即时得到值的变化.

貌似选择很多啊,那我们选择哪一种呢?

答案是:上面统统都不选!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大熊猫侯佩

赏点钱让我买杯可乐好吗 ;)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值