iOS. Приемы программирования - страница 24
• onImage – как указано ранее, это изображение будет использоваться, когда переключатель включен;
• offImage – это изображение соответствует переключателю в состоянии «выключено».
А вот код, позволяющий добиться такого эффекта:
>– (void)viewDidLoad
>{
>[super viewDidLoad];
>/* Создаем переключатель */
>self.mainSwitch = [[UISwitch alloc] initWithFrame: CGRectZero];
>self.mainSwitch.center = self.view.center;
>/* Убеждаемся, что переключатель не выглядит размытым в iOS-эмуляторе */
>self.mainSwitch.frame = [self roundedValuesInRect: self.mainSwitch.frame];
>[self.view addSubview: self.mainSwitch];
>/* Оформляем переключатель */
>self.mainSwitch.onImage = [UIImage imageNamed:@"On"];
>self.mainSwitch.offImage = [UIImage imageNamed:@"Off"];
>}
См. также
Раздел 1.2.
1.4. Выбор значений с помощью UIPickerView
Постановка задачи
Необходимо предоставить пользователю приложения возможность выбирать значения из списка.
Решение
Воспользуйтесь классом UIPickerView.
Обсуждение
Вид выбора (Picker View) – это элемент графического интерфейса, позволяющий отображать для пользователей списки значений, из которых пользователь затем может выбрать одно. В разделе Timer (Таймер) приложения Clock (Часы) в iPhone мы видим именно такой пример (рис. 1.10).
Рис. 1.10. Вид выбора, расположенный в верхней части экрана
Как видите, в отдельно взятом виде выбора содержится два независимых визуальных элемента, один слева, другой справа. В левой части вида отображаются часы (0, 1, 2 и т. д.), а в правой – минуты (18, 19, 20, 21, 22 и т. д.). Два этих элемента называются компонентами. В каждом компоненте есть строки (Rows). На самом деле любой элемент в любом компоненте представлен строкой, как мы вскоре увидим. Например, в левом компоненте 0 hours – это строка, 1 – это строка и т. д.
Создадим вид выбора в виде нашего контроллера. Если вы не знаете, где находится исходный код того вида, в котором расположен контроллер, обратитесь к разделу 1.2, где обсуждается этот вопрос.
Сначала перейдем к файлу реализации. m контроллера нашего вида и определим в нем вид выбора:
>@interface ViewController ()
>@property (nonatomic, strong) UIPickerView *myPicker;
>@end
>@implementation ViewController
>…
>А теперь создадим вид выбора в методе viewDidLoad контроллера нашего вида:
>– (void)viewDidLoad{
>[super viewDidLoad];
>self.view.backgroundColor = [UIColor whiteColor];
>self.myPicker = [[UIPickerView alloc] init];
>self.myPicker.center = self.view.center;
>[self.view addSubview: self.myPicker];
>}
В данном примере необходимо отметить, что вид выбора выравнивается по центру того вида, в котором находится. Если мы запустим это приложение в эмуляторе iOS 7, то увидим пустой экран. Дело в том, что в iOS 7 сам элемент для выбора белый и мы видим фон контроллера вида.
Вид выбора отображается в виде сплошного белого поля потому, что мы еще не наполнили его какими-либо значениями. Сделаем это. Итак, нам потребуется указать источник данных для вида выбора, а потом убедиться в том, что контроллер вида соответствует протоколу, требуемому источником данных. Источник данных экземпляра UIPickerView должен подчиняться протоколу UIPickerViewDataSource, так что обеспечим соответствие данного вида условиям этого протокола в файле. m: