Добавление UISegmentedControl в UISearchBar вместо кнопок Scope

Я хочу добавить кнопки области под моим UISearchBar. Однако я не могу изменить оттенок встроенных кнопок осциллографа.

Вместо этого я добавил UISegmentedControl в свой tableViewHeader. Это работает достаточно хорошо, но отображается только тогда, когда я не набираю текст в UISearchbar. Не очень удобно.

Когда я ввожу текст в UISearchBar, таблица и сегментированные элементы управления скрываются полупрозрачным черным слоем «нет результатов». Как только результаты начинают показывать, мой сегментированный элемент управления полностью исчезает, и отображаются только ячейки с результатами.

Я хочу сделать сегментированный элемент управления интерактивным во время ввода текста в строку поиска.

Вы знаете, как сделать следующее?

  1. заставить UISegmentedControl перемещаться с UISearchBar при вводе текста или
  2. показать UISegmentedControl, пока результаты поиска отображаются в UITableView

Спасибо


person pchap10k    schedule 05.06.2011    source источник


Ответы (1)


пытаться

@implementation UISearchBar (subviewAccess)
- (UISegmentedControl *)scopeBar {
  for (UIView *v in [self subviews]) {
    if ([v isKindOfClass:[UISegmentedControl class]])
      return v;
  }

  return nil;
}

@конец

чтобы получить сегментированный элемент управления, который вы хотите, и подкрасить его оттуда (в настоящее время он имеет индекс 0, но это определенно не точно)

не используется «частный API», поэтому с Apple должно быть все в порядке, но обратите внимание, если они изменили макет представления (маловероятно), это может сломаться, что приведет к исчезновению побочного эффекта вашего оттенка, вы должны получить доступ к остальным состояния через стандартные API панели поиска

person bshirley    schedule 05.06.2011
comment
Привет @bshirley, спасибо, но я уже пробовал. Кажется, что это меняет кнопки области видимости на обычный UISegmentedControl, но высота не в порядке. Я также пробовал получить доступ к каждому UISegment индивидуально, но даже несмотря на то, что он реагирует на метод setTintColor, цвет не меняется. Любые идеи? - person pchap10k; 06.06.2011
comment
в iOS 5 есть дополнительная поддержка тонировки многих компонентов, если это вас утешит - person bshirley; 07.06.2011