Что вызывается при изменении значения UISlider? - PullRequest
66 голосов
/ 04 ноября 2010

Вызывается ли метод при изменении UISlider value?Я хочу иметь возможность обновлять значение на основе значения UISliders, но только при его изменении ...

Спасибо за любую помощь.

Ответы [ 3 ]

167 голосов
/ 04 ноября 2010

В IB вы можете подключить IBAction к Value Changed event или в коде добавить цель / действие для UIControlEventValueChanged.Например:

[mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged];

- (IBAction)sliderValueChanged:(UISlider *)sender {
    NSLog(@"slider value = %f", sender.value);
}

Обратите внимание, что если вы хотите, чтобы события изменения значения были для пользователя sliding, убедитесь, что slider s continuous property также установлено.С другой стороны, если вы не хотите, чтобы событие инициировалось, поскольку пользователь имеет значение sliding и только после того, как он завершит скольжение, установите для параметра непрерывное значение NO (или снимите флажок в IB).

5 голосов
/ 13 декабря 2016

для Swift 3

//There is your slider
@IBOutlet weak var mSlider: UISlider!

//add a target on your slider on your viewDidLoad for example
self.mSlider.addTarget(self, action: #selector(MyClass.onLuminosityChange), for: UIControlEvents.valueChanged)

//callback called when value change
func onLuminosityChange(){
    let value = self.mSlider.value
}
0 голосов
/ 20 июня 2016
ViewController.h

@property (strong, nonatomic) IBOutlet UIProgressView *prgs;

- (IBAction)slider:(id)sender;

@property (strong, nonatomic) IBOutlet UISlider *slider1;

@property (strong, nonatomic) IBOutlet UILabel *lbl;


ViewController.m

- (IBAction)slider:(id)sender 
{

    self.prgs.progress=self.slider1.value;

    self.lbl.text = [NSString stringWithFormat:@"%f", 
self.slider1.value];

}
...