欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

iOS中的UIStepper数值加减器用法指南

程序员文章站 2023-12-04 09:51:16
uistepper可以连续增加或减少一个数值。控件的外观是两个水平并排的按钮构成,一个显示为“+”,一个显示为“-”。 该控件的一个有趣的特征是当用户按住“+”,“-”按...

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

1. 属性说明
value: 当前所表示的值,默认为0.0;
minimumvalue: 最小可以表示的值,默认0.0;
maximumvalue: 最大可以表示的值,默认100.0;
stepvalue: 每次递增或递减的值,默认为1.0;

2.如何判断加("+")减("-")
(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;
    }

}

3.基本用法整理
初始化控件

复制代码 代码如下:

uistepper * step = [[uistepper alloc]initwithframe:cgrectmake(100, 100, 100, 100)];

设置控制器值是否连续触发变化
复制代码 代码如下:

@property(nonatomic,getter=iscontinuous) bool continuous;

若设置为yes,则长按会连续触发变化,若设置为no,只有在按击结束后,才会触发。
设置长按是否一直触发变化
复制代码 代码如下:

@property(nonatomic) bool autorepeat;

若设置为yes,则长按值会一直改变,若设置为no,则一次点击只会改变一次值
设置控制器的值是否循环(到达边界后,重头开始,默认为no)
复制代码 代码如下:

@property(nonatomic) bool wraps;

设置控制器的值
复制代码 代码如下:

@property(nonatomic) double value;

设置控制器的最大值和最小值
复制代码 代码如下:

@property(nonatomic) double minimumvalue;//默认为0
@property(nonatomic) double maximumvalue; //默认为100

设置控制器的步长
复制代码 代码如下:

@property(nonatomic) double stepvalue;

设置控制器风格颜色
复制代码 代码如下:

@property(nonatomic,retain) uicolor *tintcolor;

设置控制器背景图片
复制代码 代码如下:

- (void)setbackgroundimage:(uiimage*)image forstate:(uicontrolstate)state;

获取背景图片
复制代码 代码如下:

- (uiimage*)backgroundimageforstate:(uicontrolstate)state;

通过左右按钮的状态设置分割线的图片
复制代码 代码如下:

- (void)setdividerimage:(uiimage*)image forleftsegmentstate:(uicontrolstate)leftstate rightsegmentstate:(uicontrolstate)rightstate;

获取分割线图片
复制代码 代码如下:

- (uiimage*)dividerimageforleftsegmentstate:(uicontrolstate)state rightsegmentstate:(uicontrolstate)state;

设置和获取加号按钮的图片
复制代码 代码如下:

- (void)setincrementimage:(uiimage *)image forstate:(uicontrolstate)state;
- (uiimage *)incrementimageforstate:(uicontrolstate)state;

设置和获取减号按钮的图片
复制代码 代码如下:

- (void)setdecrementimage:(uiimage *)image forstate:(uicontrolstate)state;
- (uiimage *)decrementimageforstate:(uicontrolstate)state;