Добавление UISegmentedControl в UISearchBar вместо кнопок области действия - PullRequest
3 голосов
/ 05 июня 2011

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

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

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

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

Знаете ли вы какой-нибудь способ сделать следующее?

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

Спасибо

1 Ответ

0 голосов
/ 05 июня 2011

попробуйте

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

  return nil;
}

@ end

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

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

...