Я установил мой UITableView
высота строки к в Интерфейсном Разработчике к 54,0. У меня есть a UISearchDisplayController
на том представлении. Когда пользователь касается панели поиска в нем, таблица изменяет размер правильно. Однако, когда они начинают вводить (и на самом деле делать поиск) уменьшения высоты строки. Это остается неправильным до поисковой Отмены касаний.
Я не мог найти документацию относительно этого поведения на сайте Apple.
Я попытался установить высоту строки в UISearchDisplayDelegate
делегат звонит. Это могло бы быть правильным подходом, но я не знаю детали и не мог заставить его работать.
Я также попытался реализовать - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
. Это работало, но я имею тысячи записей в этом списке и не могу получить удар производительности.
Что правильный путь состоит в том, чтобы зафиксировать это?
Нашел!
Предполагая, что таблица хранится в tableView
:
- (void)viewDidLoad;
{
[super viewDidLoad];
self.searchDisplayController.searchResultsTableView.rowHeight = tableView.rowHeight;
}
Больше ничего не требуется.
Изменить: см. Ответ netmikey для лучшего решения.
Вам нужно установить и
- (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", высота ячеек вернется к значению по умолчанию.