导航栏上带有隐藏 TableView 的 UISearchBar [英] UISearchBar with hidden TableView on NavigationBar
问题描述
我正在尝试在 NavigationBar 上创建一个带有 searchBar 的视图,我希望这个 searchBar 在开始输入后立即打开带有搜索结果的 tableView,并在触摸某个项目后隐藏它.我是这个平台的新手,所以我只需要一个可以遵循的路径,我不知道从哪里开始.
I am trying to create a view with a searchBar on the NavigationBar, I want this searchBar to open a tableView with the search results as soon as typing begins, and hide it once an item is touched. I am new to this platform, so I need just a path to follow, I don't know where to start actually.
推荐答案
根据我的评论:这里有更深入的解释.快乐编码:
According to my comment: Heres a more in depth explanation. Happy coding:
.h
@interface TableViewController : UITableViewController <UISearchBarDelegate>
@property (strong, nonatomic) UISearchBar *searchBar;
@end
.m
- (void) viewDidLoad:(BOOL)animated {
UIView *searchbarView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)]; //This adds a container that will hold the search bar.
self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 44)];
self.searchBar.delegate = self;
[searchbarView addSubview:self.searchBar];
self.tableView.tableHeaderView = searchbarView; //Inserts UIView into the header of self.tableView
[self.tableView setContentOffset:CGPointMake(0, 44)];
}
仅此而已.如果您想自定义其他内容,例如键盘布局和文本填充方式以及颜色和字体以及占位符文本等,您可以在 viewDidLoad 中对其进行编辑或创建一个子类
And thats pretty much it. If you want to customize other things like the keyboard layout and the way text populates and the color and font and placeholder text etc, you can edit it in viewDidLoad or make a subclass
编辑我在下面包含了一些用于自定义的示例代码:
self.searchBar.keyboardAppearance = UIKeyboardAppearanceDark;
self.searchBar.returnKeyType = UIReturnKeySearch;
self.searchBar.searchBarStyle = UISearchBarStyleProminent;
self.searchBar.barTintColor = [UIColor lightGrayColor];
self.searchBar.placeholder = @"Search for queries here";
self.searchBar.showsCancelButton = YES;
[[UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor blueColor],
NSForegroundColorAttributeName,
nil]
forState:UIControlStateNormal];
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
self.searchBar.showsCancelButton = NO;
[self.searchBar resignFirstResponder];
}
这篇关于导航栏上带有隐藏 TableView 的 UISearchBar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!