Как я могу сделать так, чтобы черный UISegmentedControl отображался с видимой подсветкой выделения?

У меня есть простой сегментированный элемент управления на панели инструментов. Имеет черный оттенок. Когда выбран один из сегментов, нет визуального индикатора, чтобы показать это. Теперь обычно он затемняет выбранный сегмент, но вы не можете затемнить черный. Когда нажата обычная кнопка на панели кнопок, она становится светло-серой, указывая на то, что она нажата. Как я могу сделать то же самое для сегментированного элемента управления?


person Micah Hainline    schedule 02.11.2011    source источник


Ответы (2)


Вы можете поиграть с tintColor

 NSString *firstStr = @"ABC";
NSString *secondStr = @"Catégories";
NSArray *arTemp = [[NSArray alloc] initWithObjects:firstStr, secondStr, nil];
UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:arTemp];
[arTemp release];
arTemp = nil;
segment.segmentedControlStyle = UISegmentedControlStyleBar;
segment.tintColor = [UIColor darkGrayColor];
person Vincent Bernier    schedule 02.11.2011
comment
Не совсем то, что я ищу. Мне нужно, чтобы только выбранный сегмент был серым, а не все сегменты. - person Micah Hainline; 02.11.2011
comment
Я знаю, что это обратное тому, что вы хотите; выбранный — черный, невыбранный — темно-серый. Прошло много времени с тех пор, как я написал этот код, и после неудачного теста я просто пошел по этому пути. - person Vincent Bernier; 02.11.2011

  1. Вы смотрели на новый прокси внешнего вида ios5? Это должно быть в состоянии помочь вам.

  2. Если вам также нужна поддержка до ios5, я видел, что достаточно легко создать свой собственный сегментированный элемент управления — что-то столь же простое, как набор кнопок с пользовательскими фоновыми изображениями (и отмена выбора других кнопок при выборе одной кнопки). ) или более тщательный подход, как описано в этом сообщении на idevrecipes.com

    На сайте по ссылке выше также есть хорошее обсуждение того, как сделать изображения кнопок для сегментированного элемента управления с обрезанными заглавными буквами.

  3. Третья идея заключается в том, что вы берете обычный сегментированный элемент управления, устанавливаете оттенок серого чуть светлее черного, а затем играете с сенсорными событиями (подкрашивание внутри, подкрашивание снаружи), чтобы в основном изменить нормальное поведение сегментированного элемента. элемент управления, заставляя черную кнопку на элементе управления вести себя так, как будто она выбрана. Однако я думаю, что это будет противоречить намерениям Apple (хотя это то, что делает новое приложение «Напоминания» в iOS5), и я не пробовал его, чтобы увидеть, есть ли какой-то тонкий нюанс, из-за которого это не работает.

Я хотел бы услышать, как вы в конечном итоге справитесь с этим. Удачи!

person kris    schedule 02.11.2011