wuxiios吧 关注:54贴子:877
  • 2回复贴,共1

2014-08-29第三组 UIStepper

只看楼主收藏回复

UIStepper是一个类似UISwitch的控件,但是左右两边是一个加号和一个减号
// UIStepper的常用方法
UIStepper *oneStepper = [[UIStepper alloc] init];
oneStepper.frame = CGRectMake(20, 20, 20, 20);
oneStepper.backgroundColor = [UIColor blueColor]; // 设置背景色
oneStepper.tintColor = [UIColor yellowColor]; // 设置按钮的颜色
oneStepper.alpha = 1.0; // 设置透明度 范围0.0-1.0之间
oneStepper.value = 12.0f; // 设置初始值
oneStepper.minimumValue = 10; // 设置最小值,默认是0
oneStepper.maximumValue = 20; // 设置最大值,默认是100
oneStepper.stepValue = 2; // 每点击一次增加或减少的值,默认是1
[oneStepper setBackgroundImage:[UIImage imageNamed:@"image.png"]forState:UIControlStateNormal]; // 设置不同状态显示不的不同背景图片
[oneStepper addTarget:self action:@selector(oneStepperValueChanged:)forControlEvents:UIControlEventValueChanged]; // 添加监听方法
// 添加到View,并释放内存
[self.view addSubview:oneStepper];
[oneStepper release], oneStepper = nil;
配置 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


IP属地:浙江1楼2014-08-29 16:33回复
    例子: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


    IP属地:浙江2楼2014-08-29 16:35
    回复
      广告
      立即查看
      在IOS5中增加了一个UIStepper的新控件,UIStepper可以连续增加或减少一个数值。控件的外观是两个水平并排的按钮构成,一个显示为“+”,一个显示为“-”。
      该控件的一个有趣的特征是当用户按住“+”,“-”按钮时,根据按住的时间长度,空间值的数字也以不同的数字改变。按住的时间越长,数值改变的越快。可以为UIStepper设定一个数值范围,比如0-99. 它的显示效果如下:

      1. 初始化控件
      UIStepper *_stepper = [[[UIStepper alloc] initWithFrame:CGRectMake(120, 20, 0, 0)] autorelease];
      // Set action target and action for a particular value changed event
      [_stepper addTarget:self action:@selector(updateValue:) forControlEvents:UIControlEventValueChanged];
      // Set min and max
      [_stepper setMinimumValue:0];
      [_stepper setMaximumValue:99];
      // Value wraps around from minimum to maximum
      [_stepper setWraps:YES];
      // If continuos (default), changes are sent for each change in stepper,
      // otherwise, change event occurs once user lets up on button
      [_stepper setContinuous:YES];
      // To change the increment value for each step
      // (default is 1)
      [_stepper setStepValue:10];
      2. 属性说明
      value: 当前所表示的值,默认为0.0;
      minimumValue: 最小可以表示的值,默认0.0;
      maximumValue: 最大可以表示的值,默认100.0;
      stepValue: 每次递增或递减的值,默认为1.0;
      以下几个是控制属性:
      continuous: 控制是否持续触发UIControlEventValueChanged事件。默认为YES,即当按住时每次值改变都触发一次UIControlEventValueChanged事件,否则只有在释放时触发UIControlEventValueChanged事件。
      autorepeat: 控制是否在按住时自动持续递增或递减,默认YES;
      wraps: 控制值是否在[minimumValue, maximumValue]区间内循环,默认NO。


      IP属地:浙江3楼2014-08-29 16:37
      回复