UIStepper是一个类似UISwitch的控件,但是左右两边是一个加号和一个减号

这是iOS 5 新增的控件
 
文档中的一些属性和方法:

配置 Stepper

continuous  属性  BOOL类型,默认YES,YES时表示当用户交互时会立刻发送ValueChange事件,NO则是只有等用户交互结束时才发送ValueChange事件

autorepeat  属性  BOOL类型,默认YES,YES时表示按住加号或减号不松手,数字会持续变化

wraps  属性 BOOL类型,默认NO,YES时当value加的超过maximumValue,value将变成minimumValue的值,当减的比minimumValue还小,则value变成maximum的值。如果设成NO,这value不会超过最大和最小值

minimumValue  属性 Double型 默认为0,最小值,当设置值大于或等于maximumValue时会报一个NSInvalidArgumentException异常

maximumValue  属性 Double型 默认为100,是Stepper的最大值,当设置小于或等于minimumValue时会报一个NSInvalidArgumentException异常

  stepValue  属性  Double型 默认为1,Stepper的增量或者步数(例如stepValue 是10,则点一下加就加10,减也是减10),必须大于0,否则会报一个NSInvalidArgumentException异常

访问 Stepper的值

  value  属性 Double型 默认是0,上限是maximumValue 下限是minimumValue,当数值改变时,会发送UIControlValueEventChanged给目标

定制化外观

  tintColor  属性 UIColor型,默认是nil,iOS 6新增

- (UIImage *)backgroundImageForState:(UIControlState)state

什么状态时用什么背景图片,iOS 6新增

UIControlState 有六个枚举变量

enum {

   UIControlStateNormal               = 0,         正常情况
   UIControlStateHighlighted          = 1 << 0,    在作用域内点击但是没有松手
   UIControlStateDisabled             = 1 << 1,    禁止使用时
   UIControlStateSelected             = 1 << 2,    点击且松手一般是按钮按下且凹陷的状态
   UIControlStateApplication          = 0x00FF0000,额外的状态当应用程序使用时
   UIControlStateReserved             = 0xFF000000 内部框架使用
};

- (void)setBackgroundImage:(UIImage *)p_w_picpath forState:(UIControlState)state

最好图片是可伸缩的  iOS 6新增

- (UIImage *)decrementImageForState:(UIControlState)state iOS 6新增(void)setDecrementImage:(UIImage *)p_w_picpath forState:(UIControlState)state

 iOS 6新增减号按钮的图片

- (UIImage *)incrementImageForState:(UIControlState)state iOS 6新增(void)setIncrementImage:(UIImage *)p_w_picpath forState:(UIControlState)state 

iOS 6新增加号按钮的图片

- (UIImage *)dividerImageForLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState

 leftState是左边的那个按钮的状态,rightState是右边那个按钮的状态两个按钮不同状态时换控件图片,iOS 6新增

- (void)setDividerImage:(UIImage *)p_w_picpath forLeftSegmentState:(UIControlState)leftState rightSegmentState:(UIControlState)rightState iOS 6新增

 
例子:
testStepper.stepValue = 10;
testStepper.minimumValue = 0;
testStepper.maximumValue = 55;
testStepper.value = 10;
testStepper.tintColor = [UIColor redColor];
testStepper.wraps = YES;
一开始就一直点加,则值的变化为 20 30 40 50 55
一开始就一直点减,则值的变化为 0 
当到达上限或下限时,且wraps没有设置成YES,则相应的加或减的按钮会disable