首页 > 代码库 > UIStepper

UIStepper

@在IOS5中增加了一个UIStepper的新控件,UIStepper可以连续增加或减少一个数值。控件的外观是两个水平并排的按钮构成,一个显示为“+”,一个显示为“-”。
       该控件的一个有趣的特征是当用户按住“+”,“-”按钮时,根据按住的时间长度,空间值的数字也以不同的数字改变。按住的时间越长,数值改变的越快。可以为UIStepper设定一个数值范围,比如0-99. 它的显示效果如下:



1. 初始化控件

       UIStepper *_stepper = [[[UIStepper alloc] initWithFrame:CGRectMake(120, 20, 0, 0)] autorelease];


       // 响应事件
       [_stepper addTarget:self action:@selector(updateValue:) forControlEvents:UIControlEventValueChanged];
    
       //设置最大值和最小值
       [_stepper setMinimumValue:0];
       [_stepper setMaximumValue:100];
    
       // 控制值是否在[minimumValue, maximumValue]区间内循环,默认NO。
       [_stepper setWraps:YES];
    
       // 控制是否持续触发UIControlEventValueChanged事件。默认为YES,即当按住时每次值改变都触发一                          次UIControlEventValueChanged事件,否则只有在释放时触发UIControlEventValueChanged事件。
      _stepper.continuous = YES;
    
       // 每次递增或递减的值

       [_stepper setStepValue:10];


      // 控制是否在按住时自动持续递增或递减,默认YES;

       _stepper.autorepeat = YES;

2. 属性说明

      value: 当前所表示的值,默认为0.0;
      minimumValue: 最小可以表示的值,默认0.0;
      maximumValue: 最大可以表示的值,默认100.0;
      stepValue: 每次递增或递减的值,默认为1.0;


3.如何判断加("+")减("-")

     (1)通过设置一个   double previousValue;   // 用来记录Stepper.value的上一次值

     (2)在对想操作的对象进行操作后,将Stepper.value = http://www.mamicode.com/0


[objc] view plaincopy在CODE上查看代码片派生到我的代码片
  1. #pragma mark - 设置UIStepper  
  2. - (void)createUIStepper{  
  3.   
  4.     UIStepper * stepperButton = [[UIStepper alloc]initWithFrame:CGRectMake(2255003010)];  
  5.     [stepperButton addTarget:self action:@selector(controlStepperValue:) forControlEvents:UIControlEventValueChanged];  
  6.     stepperButton.maximumValue = 100.0;  
  7.     stepperButton.minimumValue = 0.0;  
  8.     stepperButton.value = INITUISTEPPERVALUE;  
  9.     stepperButton.stepValue = 1.0;  
  10.     stepperButton.continuous = YES;  
  11.     stepperButton.wraps = NO;  
  12.     stepperButton.autorepeat = YES;  
  13.     [self.view addSubview:stepperButton];  
  14.     [stepperButton release];  
  15.   
  16. }  
  17.   
  18. - (void)controlStepperValue:(UIStepper *)stepper{  
  19.   
  20.     if (_segment.selectedSegmentIndex == 0) {  
  21.         if (stepper.value > previousValue) {  
  22.             CGRect redRect = _redView.frame;  
  23.             redRect.size.height += 5;  
  24.             _redView.frame = redRect;  
  25.         } else {  
  26.   
  27.             CGRect redRect = _redView.frame;  
  28.             redRect.size.height -= 5;  
  29.             _redView.frame = redRect;  
  30.         }  
  31.         previousValue = stepper.value;  
  32.     }else{  
  33.         if (stepper.value > previousValue) {  
  34.             CGRect redRect = _greenView.frame;  
  35.             redRect.size.height += 5;  
  36.             _greenView.frame = redRect;  
  37.         } else {  
  38.               
  39.             CGRect redRect = _greenView.frame;  
  40.             redRect.size.height -= 5;  
  41.             _greenView.frame = redRect;  
  42.         }  
  43.         previousValue = stepper.value;  
  44.     }  
  45.   
  46. }