Настройка внешнего вида UISlider - PullRequest
10 голосов
/ 16 апреля 2009

Чтобы настроить внешний вид UISlider, вы можете установить большой палец и отслеживать изображения. Часть изображений дорожки растягивается до соответствующего значения. Из документации:

Растягиваемая область находится между двумя регионы торцевой крышки. Концевые заглушки определяют части изображения, которые остаются как есть и не растягиваются. растягиваемая область шириной в 1 очко область между торцевыми заглушками, которые могут быть тиражируется, чтобы изображение появилось больше.

Теперь у меня проблема в том, что моя растягиваемая область должна иметь ширину более 1 пункта. (Это шаблон) К сожалению, ширина 1 точки в SDK жестко задана.

У кого-нибудь есть идеи, как обойти это? Или мне для этого придется написать свой собственный слайдер?

Ответы [ 7 ]

12 голосов
/ 11 июня 2010

Просто используйте прозрачные изображения в качестве изображений дорожек и поместите UIImageView ниже :)

2 голосов
/ 09 августа 2012

Я знаю, что уже поздно ответить.

Но я решил проблему следующим образом:

4 - ширина круглой заглавной буквы в файле png.

UIImage *minimum = [UIImage imageNamed:@"slider_minimum.png"];
[slider setMinimumTrackImage:[minimum stretchableImageWithLeftCapWidth:4 topCapHeight:0]
                      forState:UIControlStateNormal];
1 голос
/ 16 апреля 2009

Вы можете просто создать изображения настолько широкими, насколько вам нужно, с предварительно отрисованным рисунком.

1 голос
/ 16 апреля 2009

Я полагаю, что для этого вам придется написать собственный слайдер. Похоже, нет (публичного) API для изменения поведения UISlider в отношении растягиваемой области.

0 голосов
/ 16 января 2017

сделать свой пользовательский UISlider у вас можно разными способами. В зависимости от того, какую настройку вы хотите. Существуют свойства по умолчанию, которые вы можете настроить для настройки UIslider, например: setThumbImage: Форстат: setMinimumTrackImage: Форстат: setMaximumTrackImage: Форстат: Если вы хотите дополнительную настройку, вы можете обратиться по ссылке ниже https://medium.com/@0209neha/creating-a-custom-uislider-7756bf898832#.o1l4qhymo https://github.com/0209Neha/ExploringSlider

0 голосов
/ 19 августа 2010

Я хотел шаблон за моим UISlider. Я закончил тем, что установил оба изображения на ноль и добавил вид под слайдером, так как мне не нужно, чтобы он отличался по обе стороны от большого пальца. Это было бы сложнее, если бы вам нужно было изменить его в зависимости от позиции, но вполне выполнимо.

0 голосов
/ 17 апреля 2009

Вам необходимо инициализировать изображение с помощью stretchableImageWithLeftCapWidth: topCapHeight :. leftCapWidth и topCapHeight - это свойства, доступные только для чтения, для объектов изображения, но с помощью этой функции вы можете установить их. Вы устанавливаете только левый и верхний, потому что левый и правый колпачки имеют одинаковый размер, а верхний и нижний также одинаковы. Итак, чтобы использовать собственную дорожку ползунка с размером левой стороны 5 пикселей, вам нужно иметь изображение шириной 11 пикселей с любой высотой: 5 для левой крышки, 1 пиксель в ширину для дорожки, и еще 5 за право. Не поигравшись с ним, я не знаю, работает ли topCapHeight больше 0, как ожидалось, но я подозреваю, что это не вызовет особых проблем.

...