UISearchbar Статическая таблица

Возможно ли иметь UISearchBar на статических ячейках мне действительно нужны статические ячейки, а их около 40, так как я могу использовать UISearchBar в этом? Мои ячейки заполнены кнопкой (Каждое имя имеет другую кнопку (Каждая ячейка имеет другое имя)).

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

Может ли кто-нибудь оказать помощь, пожалуйста? Спасибо за ваше время и усилия.

1 ответ

Решение

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

Итак, под этим я подразумеваю... Если у меня есть статическое табличное представление с 1 секцией, 3 ячейками, и я хочу отображать только первую и последнюю ячейку, я бы реализовал - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionи получить его обратно 2. Тогда я бы реализовать - (UITableViewCell *)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathи когда он вызывается с индексным путем с разделом 0, строка 0, я вызываю метод суперкласса с разделом 0 строки 0. А когда он вызывается с разделом 0, строка 1, я вызываю суперкласс с разделом 0 строка 2. По сути, я сопоставляю индексы строк, которые будут отображаться, с индексами в полной статической таблице, как это определено в раскадровке.

Однако я бы посоветовал вам вообще не использовать статические ячейки, и это будет намного проще. Вам не придется иметь дело с этим отображением, чтобы сделать эту работу. Возможно, вы захотите использовать статические ячейки, если ваши ячейки имеют UITextFieldв них, или какой-либо другой тип представления, который может вызвать проблемы для повторного использования. Но в вашем случае динамическую таблицу было бы намного лучше использовать, потому что у вас нет содержимого в ячейке, которое, возможно, потребуется сохранить, если ячейка будет повторно использоваться с другим индексом.

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

Другие вопросы по тегам