Как сделать так, чтобы черный UISegmentedControl отображался с видимым выделением выделения? - PullRequest
1 голос
/ 02 ноября 2011

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

Ответы [ 2 ]

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

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

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

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

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

1 голос
/ 02 ноября 2011

Вы можете поиграть с 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];
...