[self.slider setMaximumValueImage: [UIImage imageNamed:@"MaximumValue"]];
}
Ползунок в iOS 7 выглядит совершенно иначе, нежели в более ранних версиях. Как вы догадываетесь, этот элемент стал очень прямолинейным и тонким на вид. Высота максимальной и минимальной отметок на шкале в iOS 7 составляет всего 1 точку, поэтому задавать для этих элементов специальные изображения абсолютно бесполезно — скорее всего, получится некрасиво. Поэтому для оформления этих элементов UISlider в iOS 7 рекомендуется оперировать лишь оттенками, но не присваивать элементу никаких изображений.
См. также
Раздел 1.6.
1.8. Группирование компактных параметров с помощью UISegmentedControl
Постановка задачи
Требуется предложить пользователям на выбор несколько параметров, из которых они могут выбирать. Пользовательский интерфейс должен оставаться компактным, простым и легким для понимания.
Решение
Используйте класс UISegmentedControl. Пример работы с этим классом показан на рис. 1.22.
Рис. 1.22. Сегментированный элемент управления, в котором отображаются четыре параметра
Обсуждение
Сегментированный элемент управления — это сущность, позволяющая отображать в компактном пользовательском интерфейсе наборы параметров, из которых пользователь может выбирать нужный. Чтобы отобразить сегментированный элемент управления, создайте экземпляр класса UISegmentedControl. Начинаем работу с файла реализации (.m) нашего контроллера вида:
#import «ViewController.h»
@interface ViewController
@property (nonatomic, strong) UISegmentedControl *mySegmentedControl;
@end
@implementation ViewController
…
Создаем сегментированный элемент управления в методе viewDidLoad контроллера нашего вида:
— (void)viewDidLoad{
[super viewDidLoad];
NSArray *segments = [[NSArray alloc] initWithObjects:
@"iPhone",
@"iPad",
@"iPod",
@"iMac", nil];
self.mySegmentedControl = [[UISegmentedControl alloc]
initWithItems: segments];
self.mySegmentedControl.center = self.view.center;
[self.view addSubview: self.mySegmentedControl];
}
Чтобы представить разные параметры, которые будут предлагаться на выбор в нашем сегментированном элементе управления, мы используем обычный массив строк. Такой элемент управления инициализируется с помощью метода initWithObjects:. Потом передаем сегментированному элементу управления массив строк и изображений. Результат будет как на рис. 1.22.
Теперь пользователь может выбрать в сегментированном элементе управления
Рис. 1.23. Пользователь выбрал один из вариантов в сегментированном элементе управления
Возникает вопрос: как узнать, что пользователь выбрал в сегментированном элементе управления новый параметр? Ответ прост. Как и при работе с UISwitch или UISlider, применяется метод addTarget: action: forControlEvents: сегментированного элемента управления, к которому добавляется цель. Для параметра forControlEvents нужно задать значение UIControlEventValueChanged, так как именно это событие запускается, когда пользователь выбирает в сегментированном элементе управления новый параметр:
— (void) segmentChanged:(UISegmentedControl *)paramSender{
if ([paramSender isEqual: self.mySegmentedControl]){
NSInteger selectedSegmentIndex = [paramSender selectedSegmentIndex];
NSString *selectedSegmentText =
[paramSender titleForSegmentAtIndex: selectedSegmentIndex];