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
в них, или какой-либо другой тип представления, который может вызвать проблемы для повторного использования. Но в вашем случае динамическую таблицу было бы намного лучше использовать, потому что у вас нет содержимого в ячейке, которое, возможно, потребуется сохранить, если ячейка будет повторно использоваться с другим индексом.
Если вы идете по маршруту динамической таблицы, вам просто нужно реализовать делегат для панели поиска, и при вводе вы будете хранить список отфильтрованных результатов в массиве, хранящемся в переменной или свойстве экземпляра, и перезагружать вашу таблицу, используя это массив в качестве источника данных.