• Изображение для максимального значения. Это изображение, которое будет находиться у правого края слайдера. Оно должно напоминать изображение, соответствующее минимальному значению, но, разумеется, трактуется противоположным образом. Вернувшись к примеру с яркостью лампочки, допустим, что справа от колеи с ползунком у нас изображена яркая лампочка, испускающая лучи. Так пользователю будет понятно, что чем дальше вправо он передвигает ползунок, тем ярче становится экран. Чтобы изменить это изображение, воспользуйтесь относящимся к слайдеру методом экземпляра 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"]];