Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

Я знаю, что поздно отвечаю.

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

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

UIImage *minimum = [UIImage imageNamed:@"slider_minimum.png"];
[slider setMinimumTrackImage:[minimum stretchableImageWithLeftCapWidth:4 topCapHeight:0]
                      forState:UIControlStateNormal];

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top