Читаем iOS. Приемы программирования полностью

Изображения, предоставляемые вами для областей максимальных и минимальных значений, должны при необходимости изменять размер. Подробнее о таких изображениях рассказано в разделе 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];

/* Изменяем изображение, соответствующее максимальному значению */

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже