在iOS5中新增了一个数字输入控件UIStepper,它可以递进式输入数量。UIStepper继承自UIControl,它主要的事件是UIControlEventValueChanged,每当它的值改变了就会触发这个事件。它的显示效果如下:
它主要有下面几个属性
- value 当前所表示的值,默认0.0
- minimumValue 最小可以表示的值,默认0.0
- maximumValue 最大可以表示的值,默认100.0
- stepValue 每次递增或递减的值,默认1.0
设置以上几个值,一般就可以很方便的使用了。
1
2
3
4
5
6
7
|
UIStepper *stepper = [[ UIStepper alloc ] init ]; stepper .minimumValue = 2 ; stepper .maximumValue = 5 ; stepper .stepValue = 2 ; stepper .value = 3 ; stepper .center = CGPointMake (160, 240); [stepper addTarget : self action : @selector ( valueChanged :) forControlEvents : UIControlEventValueChanged ]; |
注意:上面我设置stepValue是2,当前value是3,最小值是2。但如果我们点击“-”,这是value会变成2,而不是1。即每次改变都是value±stepValue,然后将最终的值限制在[minimumValue,maximumValue]区间内。
另外还有几个控制属性:
- continuous 控制是否持续触发UIControlEventValueChanged事件。默认YES,即当按住时每次值改变都触发一次UIControlEventValueChanged事件,否则只有在释放按钮时触发UIControlEventValueChanged事件。
- autorepeat 控制是否在按住是自动持续递增或递减。默认YES。
- wraps 控制值是否在[minimumValue,maximumValue]区间内循环。默认NO,达到最大或者最小时,按钮disable.
这几个控制属性只有在特殊情况下使用,一般使用默认值即可