• Изображения. Переключателю соответствуют:

• изображение включенного состояния. Находится на переключателе, когда он включен. Ширина изображения составляет 77 точек, высота – 22 точки;

• изображение выключенного состояния. Находится на переключателе, когда он выключен. Ширина изображения составляет 77 точек, высота – 22 точки.

На рис. 1.9 показаны примеры изображений, используемых при включенном и выключенном переключателе.


Рис. 1.9. Переключатель UISwitch и изображения, соответствующие его включенному и выключенному состояниям


Итак, переключатель может находиться в одном из двух состояний – он либо включен, либо выключен. Теперь рассмотрим, как изменить оттенок переключателя, находящегося в пользовательском интерфейсе. Это можно сделать с помощью трех важных свойств класса UISwitch (все эти свойства относятся к типу UIColor):

tintColor – оттенок, применяемый к переключателю в выключенном состоянии. К сожалению, Apple подобрала для него не совсем точное название (правильнее было бы, конечно, назвать это свойство offTintColor);

• thumbTintColor – оттенок, который будет применяться к рычажку переключателя;

• onTintColor – оттенок, применяемый к переключателю во включенном состоянии.

Далее приведен простой пример кода, изменяющий оттенок переключателя во включенном состоянии на красный, в выключенном – на коричневый. При этом рычажок будет иметь зеленый цвет. Это не самая лучшая комбинация цветов, но в целях, поставленных в данном разделе, я остановлюсь именно на таком варианте:


>– (void)viewDidLoad

>{

>[super viewDidLoad];


>/* Создаем переключатель */

>self.mainSwitch = [[UISwitch alloc] initWithFrame: CGRectZero];

>self.mainSwitch.center = self.view.center;

>[self.view addSubview: self.mainSwitch];


>/* Оформляем переключатель */


>/* Изменяем оттенок, который будет у переключателя в выключенном виде */

>self.mainSwitch.tintColor = [UIColor redColor];

>/* Изменяем оттенок, который будет у переключателя во включенном виде */

>self.mainSwitch.onTintColor = [UIColor brownColor];

>/* Изменяем также оттенок рычажка на переключателе */

>self.mainSwitch.thumbTintColor = [UIColor greenColor];

>}


Теперь, когда мы закончили работу с оттенками переключателя, перейдем к оформлению внешнего вида переключателя, связанному с использованием изображений «включено» и «выключено». При этом не забываем, что заказные изображения «включено» и «выключено» поддерживаются только в iOS 6 и старше. iOS 7 игнорирует такие изображения и при оформлении внешнего вида работает только с оттенками. Как было указано ранее, оба варианта изображения на переключателе – как для включенного, так и для выключенного состояния – должны иметь ширину 77 точек и высоту 22 точки. Поэтому я подготовил новый комплект таких изображений (для работы с обычным и сетчатым дисплеем). Я добавил их в мой проект в Xcode под названиями On@2x.png и Off@2x.png (для сетчатого дисплея), а также поместил здесь разновидности изображений для обычного дисплея. Теперь нам предстоит создать переключатель, но присвоить ему заказные изображения «включено» и «выключено». Для этого воспользуемся следующими свойствами UISwitch:

onImage – как указано ранее, это изображение будет использоваться, когда переключатель включен;

• offImage – это изображение соответствует переключателю в состоянии «выключено».

А вот код, позволяющий добиться такого эффекта:


>– (void)viewDidLoad

>{

>[super viewDidLoad];


>/* Создаем переключатель */

>self.mainSwitch = [[UISwitch alloc] initWithFrame: CGRectZero];

>self.mainSwitch.center = self.view.center;

>/* Убеждаемся, что переключатель не выглядит размытым в iOS-эмуляторе */