#iphone #objective-c #uitableview #uisearchbar
#iPhone #objective-c #uitableview #uisearchbar
Вопрос:
Я добавил UISearchBar
в качестве tableHeaderView для UITableView
в xib, просто перейдя UISearchBar
на UITableView
. Он работает нормально, когда в таблице более 6 строк. Но когда строк меньше 6, он UITableView
не прокручивается.
В то же время, если я добавлю UISearchBar
as tableHeaderView для UITableView программно в .m-файл, используя следующую инструкцию, ВСЕ РАБОТАЕТ НОРМАЛЬНО.
tableViewTemp.tableHeaderView = searchBarFriends;
Мне кажется очень странным,
В чем может быть проблема?
Пожалуйста, совет, спасибо.
Ответ №1:
Вот небольшой трюк, который я сделал 😉 Не делайте панель поиска подвидом вашего UITableView. Просто добавьте их экземпляры в свой файл nib и подключите их как IBOutlets в вашем UITableViewController. Затем то, что вы собираетесь сделать, это установить панель поиска в качестве представления заголовка для вашей таблицы, таким образом, вам не нужно беспокоиться о перекрытии фреймов и вмешательстве в события касания. Вот как вы это делаете:
Создайте свойство в заголовочном файле TableView
@property ( nonatomic, retain ) IBOutlet UISearchBar *searchBar;
Установите вид заголовка для вашей таблицы:
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
return self.searchBar; // The property you wired up in IB
}
Установите высоту для вашего заголовка или (UISearchBar)
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 44; // The height of the search bar
}
Это все, что вам нужно. Теперь это может быть не лучшим решением, если у вас есть сгруппированный tableview или таблица с несколькими разделами, но это чистое решение для простой таблицы. В противном случае вам придется настроить рамку панели поиска И tableview в коде, потому что они перекрываются, и поэтому у вас возникают проблемы с касанием. Надеюсь, это поможет!
Комментарии:
1. Я использовал это в своих приложениях, должно работать как шарм. Отметьте это как принятое, если это так 😉
Ответ №2:
если вы добавите панель поиска, как показано ниже, иерархия будет работать
Комментарии:
1. Я добавил так только приятеля, но это делало UITableView недоступным для прокрутки, когда записей меньше 6.
2. Хорошо, спасибо, Нараяна, так что это может быть какая-то другая проблема. Я проверю свой код.
Ответ №3:
У меня была почти такая же проблема (для меня она вообще не прокручивалась с любым количеством строк, но это произошло бы, как только я удалил панель поиска). Исправлено добавление этого в viewDidLoad
:
self.tableView.alwaysBounceVertical = YES;
Комментарии:
1. Спасибо, pt2ph8, я тоже попробую это.