UIStepper
控件的外观是两个水平并排的button构成。一个显示为“+”。一个显示为“-”。
该控件的一个有趣的特征是当用户按住“+”,“-”button时。依据按住的时间长度,空间值的数字也以不同的数字改变。
按住的时间越长,数值改变的越快。能够为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;
2. 属性说明
value: 当前所表示的值,默觉得0.0。
minimumValue: 最小能够表示的值,默认0.0;
maximumValue: 最大能够表示的值,默认100.0;
stepValue: 每次递增或递减的值,默觉得1.0;
3.怎样推断加("+")减("-")
(1)通过设置一个 double previousValue; // 用来记录Stepper.value的上一次值
(2)在对想操作的对象进行操作后,将Stepper.value = 0
- #pragma mark - 设置UIStepper
- - (void)createUIStepper{
- UIStepper * stepperButton = [[UIStepper alloc]initWithFrame:CGRectMake(225, 500, 30, 10)];
- [stepperButton addTarget:self action:@selector(controlStepperValue:) forControlEvents:UIControlEventValueChanged];
- stepperButton.maximumValue = 100.0;
- stepperButton.minimumValue = 0.0;
- stepperButton.value = INITUISTEPPERVALUE;
- stepperButton.stepValue = 1.0;
- stepperButton.continuous = YES;
- stepperButton.wraps = NO;
- stepperButton.autorepeat = YES;
- [self.view addSubview:stepperButton];
- [stepperButton release];
- }
- - (void)controlStepperValue:(UIStepper *)stepper{
- if (_segment.selectedSegmentIndex == 0) {
- if (stepper.value > previousValue) {
- CGRect redRect = _redView.frame;
- redRect.size.height += 5;
- _redView.frame = redRect;
- } else {
- CGRect redRect = _redView.frame;
- redRect.size.height -= 5;
- _redView.frame = redRect;
- }
- previousValue = stepper.value;
- }else{
- if (stepper.value > previousValue) {
- CGRect redRect = _greenView.frame;
- redRect.size.height += 5;
- _greenView.frame = redRect;
- } else {
- CGRect redRect = _greenView.frame;
- redRect.size.height -= 5;
- _greenView.frame = redRect;
- }
- previousValue = stepper.value;
- }
- }