iOS. Приемы программирования. Вандад Нахавандипур. Читать онлайн. Newlib. NEWLIB.NET

Автор: Вандад Нахавандипур
Издательство: ""Издательство ""Питер""
Серия: Бестселлеры O’Reilly (Питер)
Жанр произведения: Программирование
Год издания: 2014
isbn: 978-5-496-01016-0
Скачать книгу
минимальному значению, но, разумеется, трактуется противоположным образом. Вернувшись к примеру с яркостью лампочки, допустим, что справа от колеи с ползунком у нас изображена яркая лампочка, испускающая лучи. Так пользователю будет понятно, что чем дальше вправо он передвигает ползунок, тем ярче становится экран. Чтобы изменить это изображение, воспользуйтесь относящимся к слайдеру методом экземпляра 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: