如何使用一个按钮编程滑块以执行两项操作?

时间:2011-08-03 14:00:25

标签: iphone ios slider uislider integer

基本上,我正在创建一个应用程序,允许您添加或减去一定数量,我想用滑块来实现。如何通过点击不同的按钮进行加法和减法来编程滑块以便能够通过整数加或减。例如,假设您要添加3.您将栏滑动到三,然后点击“+”添加三个。我该怎么编程?

编辑:这是我想要在其中实现的代码:

int number = 0

-(IBAction)IncrementNumber:(id)sender {
    number++;
    [currentNumber setText:[NSString stringWithFormat:@"%d", number]];
}

-(IBAction)DecrementNumber:(id)sender {
    number--;
    [currentNumber setText:[NSString stringWithFormat:@"%d", number]];
}

@synthesize MySlider, MyTextField;  

-(IBAction) sliderValueChanged:(UISlider *)sender {  
    MyTextField.text = [NSString stringWithFormat:@" %1.0f", [sender value]];  
}  

-(IBAction) changeButtonPressed:(id)sender {  
    NSString *textValue = [MyTextField text];  
    float value = [textValue floatValue];  
    if (value < 0) value = 1;  
    if (value > 100) value = 100;  
    MySlider.value = value;  
    MyTextField.text = [NSString stringWithFormat:@"%1.0f", value];  
    if ([MyTextField canResignFirstResponder]) [MyTextField resignFirstResponder];  
}  

-(void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event {  
    if (MyTextField) {  
    if ([MyTextField canResignFirstResponder]) [MyTextField resignFirstResponder];  
}

2 个答案:

答案 0 :(得分:1)

您可以将滑块绑定到某个变量,将两个按钮[+]和[ - ]绑定到两个函数,例如 add sub 。 调用函数时,它们从变量中获取值,并将其加/减到某些内容。

在编辑中,假设当滑块值更改时调用 sliderValueChanged ,该函数应该改变数字,以便 IncrementNumber DecrementNumber 可以有更新的值。

在头文件(.h)中将数字定义为 IBOutlet 应该做些什么。然后,在界面构建器中,您可以将滑块的值绑定到 number 。这样,无论何时更改de slider, number 变量都会相应更改。 在界面中,声明两个将绑定到[+]和[ - ] boutons的函数:

IBOutlet int number;
-(IBAction) add: (id) sender;
-(IBAction) sub: (id) sender;

在这些函数的定义中,您可以使用您想要更改的任何数字,并将之前声明的 number 变量添加到其中。

如果 value 包含您要修改的数字,则以下内容应该可以解决问题:

-(IBAction) add: (id) sender {
    value += number;
}
-(IBAction) sub: (id) sender {
    value -= number;
}

你当然可以将这两个功能组合成一个,并根据按下哪个按钮决定你应该添加还是减去(你可以通过查看发送者参数得到它),但我认为这是效率较低,代码无缘无故会更加复杂。

答案 1 :(得分:0)

通过使用滑块控制,您可以通过它的valueChanged事件设置该操作数的值。设置值后,您可以执行操作(+/-)。有关滑块的更多帮助,您可以找到数据 here