UISearchBar与NavigationBar上隐藏的TableView

我试图用NavigationBar上的searchBar创build一个视图,我希望这个searchBar在打字开始的时候用search结果打开一个tableView,并且一旦一个物品被触摸就隐藏它。 我是这个平台的新手,所以我只需要一条path,我不知道从哪里开始。

根据我的评论:inheritance人更深入的解释。 快乐编码:

。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或build立一个子类

编辑我已经在下面包含了一些自定义的示例代码:

 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]; } 

你可以用UISearchBar在顶部创build一个视图,然后创build一个UITableView(初始隐藏),并将其添加到你现有的视图中。 隐藏导航栏的外观与UISearchController相同。 然后,您可以在用户开始search时在search栏中显示表格视图。