stretchableImageWithLeftCapWidth: устарело, начиная с iOS 5.0. В документах говорится, что вместо этого следует использовать свойство capInsets. Вот простой способ сделать это:
Создайте три изображения: минимальную (левую) дорожку, максимальную (правую) дорожку и бегунок. Для этого примера предположим, что минимальное и максимальное изображения дорожек имеют размер 34p x 18p W, что-то вроде этого: и это: .
Создайте изображения как обычно:
UIImage *thumbImage = [UIImage imageNamed:@"sliderThumb.png"];
UIImage *sliderMinTrackImage = [UIImage imageNamed: @"sliderMin.png"];
UIImage *sliderMaxTrackImage = [UIImage imageNamed: @"sliderMax.png"];
В моих примерах изображения шириной 18 пунктов внутренние точки слева и справа могут быть растянуты, чтобы соответствовать дорожке, но концы должны иметь нерастяжимые заглушки шириной 17 пунктов (отсюда и capInsets):
sliderMinTrackImage = [sliderMinTrackImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, 17, 0, 0)];
sliderMaxTrackImage = [sliderMaxTrackImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 17)];
Затем установите изображения на свой UISlider, как всегда:
[slider setThumbImage:thumbImage forState:UIControlStateNormal];
[slider setMinimumTrackImage:sliderMinTrackImage forState:UIControlStateNormal];
[slider setMaximumTrackImage:sliderMaxTrackImage forState:UIControlStateNormal];
person
Scotty
schedule
26.11.2013