Search code examples
iosuislider

Display directly range value to UISlider


I have a UISlider, with a UILabel display range value. But When this view appear, there are no a default value. I wish display a default value when this view appear.

Thanks for your answers.

- (void)ViewDidLoad {
    UISlider *firstSlider = [[UISlider alloc] init];
    firstSlider.frame = CGRectMake(30, firstView.bounds.size.height/2-15, firstView.bounds.size.width-60, 60);
    firstSlider.minimumTrackTintColor = HEXCOLOR(0xbbbbbb);
    firstSlider.maximumTrackTintColor = HEXCOLOR(0xdddddd);
    UIImage *sliderIMG = [UIImage imageNamed:@"slider.png"];
    [firstSlider setThumbImage:sliderIMG forState:UIControlStateNormal];
    firstSlider.minimumValue = 0;
    firstSlider.maximumValue = 100;
    firstSlider.value = 50;
    firstSlider.continuous = YES;
    [firstSlider addTarget:self action:@selector(getSliderValue:) forControlEvents:UIControlEventValueChanged];
    [firstView addSubview:firstSlider];

}

- (void)getSliderValue:(id) sender {
    UISlider *slider = (UISlider *)sender;
    int progressAsInt = (int)roundf(slider.value);
    NSString *firstResult = [NSString stringWithFormat:@"%d", progressAsInt];
    NSString *firstPercentResult = [firstResult stringByAppendingString:@" %"];
    _firstStat.text = firstPercentResult;
}

Solution

  • Your action method will not be called when a view is loaded. At least not automatically. If you do not want to write out setting the label value in your viewDidLoad method, you could call your slider's action method.