Как мне запрограммировать слайдер, чтобы он делал две вещи с помощью одной кнопки? - PullRequest
0 голосов
/ 03 августа 2011

По сути, я делаю приложение, которое позволяет вам добавлять или вычитать на определенное число, и я хочу сделать это с помощью ползунка.Как бы я запрограммировал ползунок, чтобы иметь возможность добавлять или вычитать с помощью целого числа, нажав другую кнопку для сложения и вычитания.Например, скажем, вы хотите добавить на 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 ]

1 голос
/ 03 августа 2011

Вы можете привязать ползунок к некоторой переменной, а две кнопки, [+] и [-] к двум функциям, скажем add и sub . Когда функции вызываются, они получают значение из переменной и добавляют / вычитают его из чего-либо.

При редактировании, предполагая, что sliderValueChanged вызывается при изменении значения ползунка, эта функция должна изменять число, так что IncrementNumber и DecrementNumber могут иметь обновленное значение.

Что нужно сделать, это определить число как IBOutlet в вашем заголовочном файле (.h). Затем в конструкторе интерфейсов вы можете привязать значение ползунка к number . Таким образом, всякий раз, когда вы меняете слайдер, переменная number изменяется соответственно. В интерфейсе объявите две функции, которые будут связаны с бутонами [+] и [-]:

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

В определении этих функций вы берете любое число, которое хотите изменить, и добавляете к нему переменную number , которую вы объявили ранее.

Что-то вроде следующего должно помочь, если значение имеет номер, который вы хотите изменить:

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

Конечно, вы можете объединить две функции в одну и решить, следует ли вам добавлять или вычитать в зависимости от того, какая кнопка была нажата (вы получите это, посмотрев на аргумент sender ), но я думаю, что это меньше эффективный, и код будет более сложным без причины.

0 голосов
/ 03 августа 2011

Используя ползунок, вы можете установить значение этого операнда с помощью события valueChanged. После установки значения вы можете выполнить операцию (+/-). Для получения дополнительной помощи по слайдеру вы можете найти данные здесь

...