本文畅想了几种为UISlider添加显示当前值的方法,并选择了其中一个稳定,简单的实现.适合iOS刚入门或中级水平的童鞋们观赏.
看不见值?这不科学!
默认的UISlider,你可以任意拖动,却看不见当前表示的值…
有点盲人摸象的赶脚了…
我们一般的做法是用另一个控件表示其当前值,比如一个UILabel.
不过这样貌似要另外占用一些空间,不紧凑!
看到UISlider上面那个圆圆的把手了么?我们准备把当前值显示在它里面!
几种可能的实现
- 第一种: UISlider可以替换把手图片,如果我们可以用其当前表示的值生成对应的图片,我们就可以做到动态替换;因为这是Cocoa自带的接口,所以很稳定,唯一缺点是动态生成图片略显繁琐.
- 第二种: 在运行时找到UISlider把手对应的View,将Label作为它的子视图;这样做的好处是一旦添加Label,它会随把手一起移动,你将不用再操心它的位置.但如何找到,以及何时去找到UISlider对应的View,需要一些小手段.
- 第三种: 在UISlider的valueChanged回调中,根据当前值来计算Label位置.不过这样的话UISlider.isContinuous必须为true,因为你需要即时得到值的变化.
貌似选择很多啊,那我们选择哪一种呢?
答案是:上面统统都不选!