На самом деле я написал учебное пособие о том, как это сделать на веб-сайте моей компании:
http://fragmentlabs.com/blog/making-talking2trees-part-3-77
Быстрый ответ на этот вопрос - пользовательский метод, который я написал, и который объясняется встатья выше:
-(UIView*)tickMarksViewForSlider:(UISlider*)slider View:(UIView *)view
{
// set up vars
int ticksDivider = (slider.maximumValue > 10) ? 10 : 1;
int ticks = (int) slider.maximumValue / ticksDivider;
int sliderWidth = 364;
float offsetOffset = (ticks < 10) ? 1.7 : 1.1;
offsetOffset = (ticks > 10) ? 0 : offsetOffset;
float offset = sliderWidth / ticks - offsetOffset;
float xPos = 0;
// initialize view to return
view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y+1,
slider.frame.size.width, slider.frame.size.height);
view.backgroundColor = [UIColor clearColor];
// make a UIImageView with tick for each tick in the slider
for (int i=0; i < ticks; i++)
{
if (i == 0) {
xPos += offset+5.25;
}
else
{
UIView *tick = [[UIView alloc] initWithFrame:CGRectMake(xPos, 3, 2, 16)];
tick.backgroundColor = [UIColor colorWithWhite:0.7 alpha:1];
tick.layer.shadowColor = [[UIColor whiteColor] CGColor];
tick.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
tick.layer.shadowOpacity = 1.0f;
tick.layer.shadowRadius = 0.0f;
[view insertSubview:tick belowSubview:slider];
xPos += offset - 0.4;
}
}
// return the view
return view;
}
Вы бы в основном применили этот метод к представлению, которое находится позади вашего UISlider, и оно создает отметки в соответствующие интервалы.Вы можете изменить количество видимых тиков, изменив переменную ticksDivider.В приведенном выше примере создается одно значение для каждого слайдера, если только свойство MaximumValue этого слайдера не превышает 10 (у моих слайдеров были значения 5, 40 и 120), и в этом случае я разделил это значение на 10.
Вы должны игратьсо значением offsetOffset и значением с плавающей запятой после xPos += offset+...
для учета ширины изображения большого пальца и вставок крышки ползунка (поэтому кнопка большого пальца, кажется, центрирована по каждому).