Search code examples
iosios7uislider

How to customze UISlider to get stepps visible


I want to customize my UISlider to be able to show steps like in photo attached (BTW this is a font size selector, native control from my iPhone settings). I able to set images for min and max but I can't show steps. I don't need 3rd party libraries to do this, I'm sure that it's possible to customize UISlider to have this.

enter image description here

Please help.

Thanks in advance.


Solution

  • You can add some subviews behind the slider to display the steps:

    int numSteps = 5;
    for(int i=0; i<numSteps; i++){
        CGFloat x = i*CGRectGetWidth(slider.frame)/(numSteps-1);
        UIView *v = [[UIView alloc] initWithFrame:CGRectMake(x, CGRectGetMidY(slider.frame)-5, 1, 10)];
        v.backgroundColor = [UIColor lightGrayColor];
        [slider.superview insertSubView:v belowSubview:slider];
    
        UILabel numberLabel = [[UILabel alloc] init];
        numberLabel.text = [NSString stringWithFormat:@"%i",i];
        numberLabel.font = [UIFont systemFontOfSize:13];
        [numberLabel sizeToFit];
        numberLabel.center = CGPointMake(x, CGRectGetMidY(slider.frame)+CGRectGetHeight(numberLabel.frame)/2+7);
        [slider.superview insertSubView:numberLabel belowSubview:slider];
    }