• Изображение для максимального значения. Это изображение, которое будет находиться у правого края слайдера. Оно должно напоминать изображение, соответствующее минимальному значению, но, разумеется, трактуется противоположным образом. Вернувшись к примеру с яркостью лампочки, допустим, что справа от колеи с ползунком у нас изображена яркая лампочка, испускающая лучи. Так пользователю будет понятно, что чем дальше вправо он передвигает ползунок, тем ярче становится экран. Чтобы изменить это изображение, воспользуйтесь относящимся к слайдеру методом экземпляра setMaximumValueImage:. Это изображение должно иметь 23 точки в высоту и столько же в ширину.
Изображения, предоставляемые вами для областей максимальных и минимальных значений, должны при необходимости изменять размер. Подробнее о таких изображениях рассказано в разделе 17.5.
Для этого упражнения я создал пять уникальных изображений – по одному для каждого компонента слайдера. Убедился, что изображения для областей с максимальными и минимальными значениями поддерживают изменение размера. Оформляя этот слайдер по своему усмотрению, я стремлюсь создать у пользователя впечатление, что он меняет температуру в комнате: при перемещении ползунка влево становится прохладнее, вправо – теплее. Далее приведен код, создающий слайдер и оформляющий различные его компоненты:
>#import "ViewController.h"
>@interface ViewController ()
>@property (nonatomic, strong) UISlider *slider;
>@end
>@implementation ViewController
>/*
>Этот метод возвращает изображение переменного размера для области слайдера, содержащей минимальные значения
>*/
>– (UIImage *) minimumTrackImage{
>UIImage *result = [UIImage imageNamed:@"MinimumTrack"];
>UIEdgeInsets edgeInsets;
>edgeInsets.left = 4.0f;
>edgeInsets.top = 0.0f;
>edgeInsets.right = 0.0f;
>edgeInsets.bottom = 0.0f;
>result = [result resizableImageWithCapInsets: edgeInsets];
>return result;
>}
>/*
>Аналогично предыдущему методу этот возвращает изображение переменного размера для области слайдера, содержащей максимальные значения
>*/
>– (UIImage *) maximumTrackImage{
>UIImage *result = [UIImage imageNamed:@"MaximumTrack"];
>UIEdgeInsets edgeInsets;
>edgeInsets.left = 0.0f;
>edgeInsets.top = 0.0f;
>edgeInsets.right = 3.0f;
>edgeInsets.bottom = 0.0f;
>result = [result resizableImageWithCapInsets: edgeInsets];
>return result;
>}
>– (void)viewDidLoad{
>[super viewDidLoad];
>/* Создаем слайдер */
>self.slider = [[UISlider alloc] initWithFrame: CGRectMake(0.0f,
>0.0f,
>218.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 setMinimumValueImage: [UIImage imageNamed:@"MinimumValue"]];
>/* Изменяем изображение для области минимальных значений */
>[self.slider setMinimumTrackImage: [self minimumTrackImage]
>forState: UIControlStateNormal];
>/* Изменяем изображение ползунка для обоих возможных состояний ползунка: когда
>пользователь его касается и когда не касается */
>[self.slider setThumbImage: [UIImage imageNamed:@"Thumb"]
>forState: UIControlStateNormal];
>[self.slider setThumbImage: [UIImage imageNamed:@"Thumb"]
>forState: UIControlStateHighlighted];
>/* Изменяем изображение для области максимальных значений */
>[self.slider setMaximumTrackImage: [self maximumTrackImage]
>forState: UIControlStateNormal];
>/* Изменяем изображение, соответствующее максимальному значению */
>[self.slider setMaximumValueImage: [UIImage imageNamed:@"MaximumValue"]];