39

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

UIStepper头文件中有两个UIButtons:

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]];
     }

}
4

5 回答 5

104

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

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

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

  [label setText:[NSString stringWithFormat:@"%d", (int)value]];
}
于 2011-10-15T17:40:51.220 回答
4

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

@IBAction func stepperValue(sender: UIStepper) {
    print("the stepper value is :\(sender.value)")
}
于 2016-08-04T11:32:52.263 回答
2

取 UIStepper 的出路:

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

在 viewDidLoad 方法中:

self.stepper.wraps=YES;

如果是,则值从 min <-> max 开始。默认 = 否

 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];
}
于 2016-08-04T13:26:03.670 回答
0

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

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

2)。您需要一个连接到这个特定步进器的函数,其参数是 sender:UIStepper。它应该是这样的

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

3)。现在写下函数执行时应该发生的事情(每次按下步进器)。为了解释,让我们使用标签。像往常一样控制拖拽他。下面是在函数中,当步进器被击中时执行此行。

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

就是这样。

PS Stepper 具有“特殊能力”,即:

-> 自动重复意味着 - 按住步进器会快速增加计数器。True/false -> Wrap - 值在“圆圈”中。低于最小值将给出最大值。超过最大的——你会跌到最低的。步进器以某种方式循环。-> 是连续的。最好让它始终正确。

我可以通过在属性检查器中选择它们来更改这些属性。

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

于 2019-12-06T23:37:09.877 回答
-7

尝试

    stepper.maximumValue = 10.0;
    stepper.minimumValue = 0.0;
于 2012-02-01T18:54:19.150 回答