В iOS 5 есть ли способ не скрывать строку поиска в UITableViewController
?UITableViewController всегда отображает строку поиска
ответ
Я бы не рекомендовал UITableViewController
для этого тогда, в UIViewController
с UITableVIew
и UISearchBar
на нем, а не на заголовок будет делать эту работу. В более личном мнении, я бы не рекомендовал UITableViewController
для чего-либо, я нахожу его слишком строгим для того, что он действительно предлагает. Если по какой-то причине я использую UITableViewController
, и клиент просит меня добавить новый элемент на экран, я в основном завинчен.
Я согласен с тобой, +1. –
Я отредактировал вопрос, удерживая +1. : P – Peres
Я бы рекомендовал 'UITableViewController', если у вас есть текстовые поля. Когда клавиатура появляется, таблица сдвигается сама по себе. С другой стороны, вам нужно реализовать свое «я». Приветствия. –
Я знаю, что это старый вопрос, но я нашел решение для этого, которое работает с классическим UITableViewController и UTSearchDisplayController.
Я создал контейнерный вид для поискаBar 1, затем поместил в него панель поиска. Контейнер не должен зажиматься до границ. После этого вы можете изменить положение панели поиска относительно контейнера. Одна из проблем заключается в том, что таким образом поисковая панель не обрабатывает взаимодействия пользователей. Поэтому нам нужно использовать наш собственный контейнер, который получает события ниже своего реального кадра.
Наш класс контейнер:
@interface _SearchContainerView : UIView
@end
@implementation _SearchContainerView
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
if (self.subviews.count > 0) {
UISearchBar *searchBar = (UISearchBar *) self.subviews[0];
CGRect f = searchBar.frame;
f = CGRectMake(0, 0, f.size.width, f.origin.y + f.size.height);
if (CGRectContainsPoint(f, point)) return YES;
}
return [super pointInside:point withEvent:event];
}
@end
Если вы создаете SearchBar программно вы можете установить это с следующий как код:
- (void)setSearchEnabled:(BOOL)searchEnabled {
if (searchBar == nil && searchEnabled) {
searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, 44)];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar
contentsController:self];
searchBar.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin
| UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth;
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchContainer = [[_SearchContainerView alloc] initWithFrame:searchBar.frame];
[container addSubview:searchBar];
container.clipsToBounds = NO;
self.tableView.tableHeaderView = container;
} else {
[searchBar removeFromSuperview];
self.tableView.tableHeaderView = nil;
searchBar = nil;
searchDisplayController = nil;
searchContainer = nil;
}
}
Затем вы можете изменить позицию, основанную на Tableview-х положение прокрутки:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (searchBar == nil || searchDisplayController.isActive) return;
CGRect b = self.tableView.bounds;
// Position the searchbar to the top of the tableview
searchBar.frame = CGRectMake(0, b.origin.y, b.size.width, 44);
}
И последняя часть предназначена для восстановления e все после поиска:
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
// Restore header alpha
searchContainer.alpha = 1.0;
// Place the searchbar back to the tableview
[searchBar removeFromSuperview];
[searchContainer addSubview:searchBar];
// Refresh position and redraw
CGPoint co = self.tableView.contentOffset;
[self.tableView setContentOffset:CGPointZero animated:NO];
[self.tableView setContentOffset:co animated:NO];
}
- 1. IOS8 UISearchController непосредственно отображает строку поиска
- 2. displaySearchBarInNavigationBar не отображает строку поиска
- 3. UITableViewController не отображает данные
- 4. Ошибка поиска UITableViewController - [NSInternalInconsistencyException]
- 5. UITableViewController не отображает пользовательские ячейки прототипа
- 6. UIImageView не отображает установленное изображение из UITableViewController
- 7. UITableViewController отображает по-разному в popover, почему?
- 8. Добавить панель поиска во вторую секцию uitableviewcontroller
- 9. ios UITableViewController перекрывает строку состояния
- 10. Как удалить строку из UITableViewController
- 11. Радиоканал всегда отображает undefined
- 12. Результат поиска не отображает ячейки в таблицеView
- 13. UITableViewController скрывает навигационную панель [Панель поиска]
- 14. Строка поиска из текстового файла и отображает выбранную строку
- 15. intent.createChooser всегда отображает темный диалог
- 16. Imageloader всегда отображает неправильное изображение
- 17. Safari не всегда отображает страницу
- 18. sifr альтернативный текст всегда отображает
- 19. Невозможно установить строку поиска с панелью поиска Цвет дисплея iOS7
- 20. UILabel не отображает правильную строку
- 21. Как настроить секцию и строку в UITableViewController?
- 22. MonoTouch, UITableViewController, Как вставить строку в раздел?
- 23. Панель UISearch всегда отображает: нет результата
- 24. Printf не отображает строку
- 25. MFMailComposeViewController отображает только строку
- 26. отображает крошечную строку
- 27. Breadcrumb отображает строку запроса
- 28. dataTable.DefaultView.Rowfilter всегда возвращает первую строку
- 29. Функция поиска не отображает результаты.
- 30. подсказка не отображает результаты поиска
Не могли бы вы объяснить, что вы имеете в виду? Что вы пробовали? Благодарю. –