UIStepper

@在IOS5中增加了一个UIStepper的新控件,UIStepper可以连续增加或减少一个数值。控件的外观是两个水平并排的按钮构成,一个显示为“+”,一个显示为“-”。

 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 = 0    

  1. #pragma mark - 设置UIStepper   
  2. - (  void )createUIStepper{  
  3.   
  4.       UIStepper  * stepperButton = [[UIStepper  alloc ]initWithFrame:CGRectMake(2 2 5 ,  5 0 0 ,  3 0 ,  1 0 )];  
  5.     [stepperButton   addTarget : self  action : @selector (controlStepperValue:)  forControlEvents :UIControlEventValueChanged];  
  6.     stepperButton  .maximumValue  =  1 0 0 .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. }  

 

    

 

//如下面例子

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    self.view.backgroundColor=[UIColor yellowColor];

    UIStepper *stepper = [[UIStepper alloc] init];

    stepper.tag = 10;

    stepper.center = CGPointMake(160, 240);

    stepper.minimumValue = 1; //设置最小值

    stepper.maximumValue = 30; //设置最大值

    stepper.stepValue = 2; //每次递增2

    stepper.value = 15; //初始值

    [stepper setWraps:YES]; //是否循环

    [stepper addTarget:self action:@selector(doTest) forControlEvents:UIControlEventValueChanged];

    

    

    [self.view addSubview:stepper];

    [stepper release];

   

}

 

-(void)doTest

{

    UIStepper *per = (UIStepper*)[self.view viewWithTag:10];

    

    if (per.continuous)

    {

        NSLog(@"Y");

        int a = per.value;  //获取当前值

        NSLog(@"%d", a);

    }

    else

    {

        NSLog(@"N");

    }

}

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(UI)