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

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

看不见值?这不科学!

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

有点盲人摸象的赶脚了…

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

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

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

几种可能的实现

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

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

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

简约同样简单:为UISlider添加显示当前值的标签(上)_第1张图片
因为还有一种方法:方法零!

第零种方法

为了利用Cocoa的接口(稳定),为了UISlider.isContinuous可以为false,必须找到一种方法:如何定位Slider把手的位置?

其实这很简单!!!

因为UISlider本身自

你可能感兴趣的:(iOS开发小干货,iOS开发之旅)