如何使用UIStepper

时间:2011-10-15 17:33:02

标签: ios objective-c uistepper

我正在尝试使用UIStepper来递增或递减整数, 但是“ - ”和“+”都会增加整数!如何识别“+”和“ - ”按钮?

UIStepper标头文件中有两个UIButton s:

UIButton *_plusButton;
UIButton *_minusButton;

例如:

- (IBAction)changeValue:(id)sender 
{        
    UIStepper *stepper = (UIStepper *) sender;

    stepper.maximumValue = 10;
    stepper.minimumValue = 0;      
    if (stepper)
    {
        integer++;
        [label setText:[NSString stringWithFormat:@"%d",integer]];
     }
     else
     { 
         integer--;
         [label setText:[NSString stringWithFormat:@"%d",integer]];
     }

}

5 个答案:

答案 0 :(得分:103)

你应该忽略ivars。他们不会帮助你。

UIStepper具有value属性,您可以查询该属性以确定当前值是什么。所以你的方法可能只是:

- (IBAction)valueChanged:(UIStepper *)sender {
  double value = [sender value];

  [label setText:[NSString stringWithFormat:@"%d", (int)value]];
}

答案 1 :(得分:3)

UIStepper返回Double值,对于swift版本,请执行以下操作:

@IBAction func stepperValue(sender: UIStepper) {
    print("the stepper value is :\(sender.value)")
}

答案 2 :(得分:2)

走UIStepper的出口:

@property (strong, nonatomic) IBOutlet UIStepper *stepper;

在viewDidLoad方法中:

self.stepper.wraps=YES;

如果是,则值从min< - >包裹。最大。默认=否

 self.stepper.autorepeat=YES;

如果是,请按&坚持多次改变价值。默认=是

将初始值设为0。

NSUInteger value= self.stepper.value;

self.label.text= [NSString stringWithFormat:@"%02lu",(unsigned long)value];

设置最大值

self.stepper.maximumValue=50;

采取UIStepper的行动:

- (IBAction)valueDidChanged:(UIStepper *)sender {
//Whenever the stepper value increase and decrease the sender.value fetch the curent value of stepper
        NSUInteger value= sender.value;
        self.label.text= [NSString stringWithFormat:@"%02lu",value];
}

答案 3 :(得分:0)

我认为在Xcode 11.2中不可能出现这样的错误。但是,如果您在搜索“如何使用步进器”中找到了该主题,则可以找到答案:

1)。在情节提要板上创建一个步进器,一如既往地控制拖动它。它应该创建一个引用出口。

2)。您需要一个与此特定步进器相连的函数,其参数为sender:UIStepper。应该是

@IBAction func stepperValueChange(_ sender: UIStepper) {}

3)。现在,写出执行该功能时(每次按下步进器时)应该发生的情况。为了便于说明,请使用标签。控制权一如既往地拖他。下面是该函数中的内容,当踩下步进器时将执行此行。

valueLabel.text = Int(sender.value).description

就是这样。

P.S。 步进具有“特殊能力”,即:

->自动重复方式-按住步进可以快速增加计数器。真假 ->换行-值在“圆”中。低于最小值将得到最大的价值。超过最大的-您降至最低的。步进器以某种方式循环。 -> isContinuous。最好使其始终为真。

可以通过在“属性”检查器中选择这些属性来更改这些属性。

也供参考: https://www.ioscreator.com/tutorials/stepper-ios-tutorial

答案 4 :(得分:-6)

尝试

    stepper.maximumValue = 10.0;
    stepper.minimumValue = 0.0;