Как я могу выбрать несколько областей в UISearchBar?

Я работаю над приложением для iPhone с UISearchBar, заполняющим табличное представление. У меня есть различные варианты поиска, которые можно легко подключить к функциям «области видимости». Однако мне действительно нужно иметь две группы кнопок. Одна группа будет «областью», определяющей тип поиска, и одна группа, которая указывает порядок сортировки возвращаемых результатов. Насколько я могу судить, вы можете выбрать сразу только один элемент «области действия», используя обычные функции.

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

Прямо сейчас у меня есть только два разных UISegmentedControl под моим UISearchBar, и я все делаю вручную. Это работает. Однако, даже если я сделаю фон сероватым, он не будет выглядеть как часть панели поиска (как область в mail.app).

Любые идеи? Я новичок в SDK, поэтому вполне возможно, что я что-то пропустил. Я узнал о функциональных возможностях области только после того, как уже вручную закодировал сегментированные элементы управления!


person pj4533    schedule 21.07.2009    source источник
comment
Не могли бы вы поделиться своим кодом при создании элемента управления с несколькими областями? Я тоже пытаюсь сделать что-то подобное.   -  person William Niu    schedule 10.10.2011


Ответы (1)


Я не уверен, поможет ли это, но вы можете получить доступ к сегментированному элементу управления, который используется с панелью поиска, с помощью приведенного ниже кода. Может подправить или чем-то заменить?

// Find scope segmented control
for (UIView *v in searchBar.subviews) {
    if ([v isMemberOfClass:[UISegmentedControl class]]) {   

        // You've got the segmented control!        
        UISegmentedControl *scope = (UISegmentedControl *)v;

        // Do your thing here...

    }
}
person Michael Waterfall    schedule 27.09.2009