UISearchDisplayController, изменяющий высоту строки

Я установил мой UITableView высота строки к в Интерфейсном Разработчике к 54,0. У меня есть a UISearchDisplayController на том представлении. Когда пользователь касается панели поиска в нем, таблица изменяет размер правильно. Однако, когда они начинают вводить (и на самом деле делать поиск) уменьшения высоты строки. Это остается неправильным до поисковой Отмены касаний.

Я не мог найти документацию относительно этого поведения на сайте Apple.

Я попытался установить высоту строки в UISearchDisplayDelegate делегат звонит. Это могло бы быть правильным подходом, но я не знаю детали и не мог заставить его работать.

Я также попытался реализовать - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;. Это работало, но я имею тысячи записей в этом списке и не могу получить удар производительности.

Что правильный путь состоит в том, чтобы зафиксировать это?

25
задан Steven Fisher 14 April 2010 в 17:51
поделиться

2 ответа

Нашел!

Предполагая, что таблица хранится в tableView :

- (void)viewDidLoad;
{
    [super viewDidLoad];
    self.searchDisplayController.searchResultsTableView.rowHeight = tableView.rowHeight;
}

Больше ничего не требуется.

Изменить: см. Ответ netmikey для лучшего решения.

16
ответ дан 28 November 2019 в 17:50
поделиться

Вам нужно установить и

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {    
    return 54.;
}

и

self.tableView.rowHeight = 54.;

также в вашем UISearchDisplayDelegate

- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView {
    tableView.rowHeight = 54.; 
}

Иначе, когда при поиске произойдет "No Result", высота ячеек вернется к значению по умолчанию.

0
ответ дан 28 November 2019 в 17:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: