Вандад Нахавандипур

iOS. Приемы программирования


Скачать книгу

UIControlEventValueChanged];

      Затем реализуем метод switchIsChanged:. Когда среда времени исполнения вызовет этот метод в ответ на событие переключателя UIControlEventValueChanged, она передаст переключатель как параметр данного метода и вы сможете узнать, какой именно переключатель инициировал данное событие:

      – (void) switchIsChanged:(UISwitch *)paramSender{

      NSLog(@"Sender is = %@", paramSender);

      if ([paramSender isOn]){

      NSLog(@"The switch is turned on.");

      } else {

      NSLog(@"The switch is turned off.");

      }

      }

      Теперь попробуем запустить наше приложение в эмуляторе iOS. В окне консоли вы увидите примерно такие сообщения:

      Sender is = <UISwitch: 0x6e13500;

      frame = (100 100; 79 27);

      layer = <CALayer: 0x6e13700>>

      The switch is turned off.

      Sender is = <UISwitch: 0x6e13500;

      frame = (100 100; 79 27);

      layer = <CALayer: 0x6e13700>>

      Переключатель включен.

      1.3. Оформление UISwitch

      Постановка задачи

      Вы вставили в ваш пользовательский интерфейс несколько экземпляров UISwitch и теперь хотите оформить их так, чтобы они вписывались в этот графический интерфейс.

      Решение

      Используйте одно из свойств настройки тонов/изображений класса UISwitch, например tintColor или onTintColor.

      Обсуждение

      Apple проделала огромную работу по обеспечению оформления компонентов пользовательского интерфейса, в частности UISwitch. В предыдущих версиях SDK разработчикам приходилось производить подкласс от UISwitch лишь для того, чтобы изменить внешний вид и цвет элемента. В современном iOS SDK такие задачи решаются гораздо проще.

      Существует два основных способа оформления переключателя.

      • Работа с оттенками. Оттенки – это цветовые тона, которые вы можете применять к компоненту пользовательского интерфейса, например к UISwitch. Новый оттенок накладывается поверх актуального цвета компонента. Например, при работе с обычным UISwitch вы наверняка сталкивались с разными цветами. Когда вы применяете оттенок поверх цвета, этот цвет смешивается с наложенным оттенком. Таким образом создается разновидность оттенка, действующая в данном элементе пользовательского интерфейса.

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

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

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

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

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

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

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