В SDK iOS разработчик также может изменять внешний вид слайдера. Например, ползунок может иметь нестандартный вид. Чтобы изменить внешний вид ползунка, просто пользуйтесь методом setThumbImage: forState: и передавайте нужное изображение, а также второй параметр, который может принимать одно из двух значений:
• UIControlStateNormal – обычное состояние ползунка, когда его не трогает пользователь;
• UIControlStateHighlighted – изображение, которое должно быть на месте ползунка, когда пользователь начинает его двигать.
Я подготовил два изображения: одно для стандартного состояния ползунка, а другое – для активного (затронутого) состояния. Добавим их к слайдеру:
>[self.slider setThumbImage: [UIImage imageNamed:@"ThumbNormal.png"]
>forState: UIControlStateNormal];
>[self.slider setThumbImage: [UIImage imageNamed:@"ThumbHighlighted.png"]
>forState: UIControlStateHighlighted];
Теперь взглянем, как выглядит в эмуляторе неактивный слайдер (рис. 1.19).
Рис. 1.19. Слайдер со специально оформленным ползунком
1.7. Оформление UISlider
Постановка задачи
Вы используете компонент графического интерфейса UISlider, оформленный по умолчанию, и хотите на свой вкус изменить его внешний вид.
Решение
Либо измените оттенки различных частей слайдера, либо подготовьте для его элементов собственные рисунки.
Обсуждение
Apple проделала огромную работу, предоставив нам в iOS SDK методы для оформления компонентов пользовательского интерфейса. В частности, оформление может быть связано с изменением оттенков различных частей компонента в интерфейсе. Схема, демонстрирующая компонентный состав пользовательского интерфейса, приведена на рис. 1.20.
Рис. 1.20. Различные компоненты UISlider
Для каждого из этих компонентов UISlider существуют метод и свойство, позволяющие изменять внешний вид слайдера. Простейшими из этих свойств являются те, которые позволяют изменять оттенок соответствующего компонента:
• minimumTrackTintColor – это свойство задает оттенок для области минимальных значений;
• thumbTintColor – это свойство, как понятно из его названия, задает цвет ползунка;
• maximumTrackTintColor – это свойство задает оттенок для области максимальных значений.
Все эти свойства относятся к типу UIColor.
В следующем образце кода мы инстанцируем UISlider и помещаем его в центре вида, расположенного в нашем контроллере. Кроме того, здесь мы задаем цвет для области минимальных значений (красный), цвет ползунка (черный) и цвет области максимальных значений (зеленый):
>– (void)viewDidLoad{
>[super viewDidLoad];
>/* Создаем слайдер */
>self.slider = [[UISlider alloc] initWithFrame: CGRectMake(0.0f,
>0.0f,
>118.0f,
>23.0f)];
>self.slider.value = 0.5;
>self.slider.minimumValue = 0.0f;
>self.slider.maximumValue = 1.0f;
>self.slider.center = self.view.center;
>[self.view addSubview: self.slider];
>/* Задаем оттенок для области минимальных значений */
>self.slider.minimumTrackTintColor = [UIColor redColor];
>/* Задаем оттенок для ползунка */
>self.slider.maximumTrackTintColor = [UIColor greenColor];
>/* Задаем цвет для области максимальных значений */
>self.slider.thumbTintColor = [UIColor blackColor];
>}
Если вы теперь запустите получившееся приложение, то увидите примерно такую картину, как на рис. 1.21.
Рис. 1.21. Оттенки всех составных частей слайдера изменены
Иногда вам может потребоваться более полный контроль над тем, как слайдер будет выглядеть на экране. При этом одних только оттенков может быть недостаточно. Именно поэтому Apple предлагает и другие способы изменения внешнего вида слайдера, позволяя вам задавать изображения для различных его компонентов. Речь идет о следующих изображениях.