Воссоздание сегментированного элемента управления из iPhone App Store

Я пытаюсь воссоздать интерфейс, похожий на магазин приложений, используя панель навигации с сегментированным элементом управления непосредственно под ней. У меня есть контроллер и все связанные представления, работающие отлично; моя проблема в том, что я хотел бы сопоставить цвет моего сегментированного контроллера с тем же цветом, который Apple использует в магазине. Как мне добиться этого? Я экспериментировал с colorWithRed:green:blue:alpha, но без особого успеха. Спасибо.

Сегментированный контроль


person Mark Leonard    schedule 26.02.2011    source источник


Ответы (1)


Вы можете использовать:

[mySegmentedControl setSegmentedControlStyle:7];

однако возможно, что это будет отклонено из App Store, хотя я слышал о приложениях, которые прошли отлично, вам нужно будет убедиться, что обновления для iOS не изменяют число с 7.

В качестве альтернативы вы можете установить стиль панели на UISegmentedControlStyleBar и добавить за ним UIImageView со снимком экрана 1x44px края синего фона:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTitles];
[segmentedControl setFrame:CGRectMake(5, 7, self.view.bounds.size.width - 10, 30)];
[segmentedControl setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
[segmentedControl setSegmentedControlStyle:UISegmentedControlStyleBar];
UIImageView *backgroundOfSegmentedControl = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"segmentedControl7Background"]];
[backgroundOfSegmentedControl setFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
[backgroundOfSegmentedControl setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
[self.view addSubview:backgroundOfSegmentedControl];
[self.view addSubview:segmentedControl];

Результат не идентичен, но вы этого не заметите, если не будете напрямую сравнивать их друг с другом.

person Jonathan.    schedule 26.02.2011
comment
Здорово. Я использовал setSegmentControlStyle:7 и получил именно то, что хотел. Надеюсь, это не станет проблемой. Спасибо. - person Mark Leonard; 27.02.2011