首先,你需要添加UISearchControllerDelegate
然後設置您的代理
self.searchController.delegate=self;
放置一個新的視圖,將舉行您的搜索控制器
-(void) viewDidLoad{
UIView *searchContainerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.searchTable.frame.size.width, 30)];
searchContainerView.layer.masksToBounds=YES;
searchContainerView.clipsToBounds=YES;
self.tableView.tableHeaderView=searchContainerView;
self.searchController.searchBar.layer.masksToBounds=YES;
self.searchController.searchBar.clipsToBounds=YES;
[searchContainerView addSubview:self.searchController.searchBar];
[self.searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)];//Make sure that your header view and searchcontroller size is same
}
然後添加th ESE委託方法
- (void)didPresentSearchController:(UISearchController *)searchController{
[searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)];
}
- (void)didDismissSearchController:(UISearchController *)searchController{
[searchController.searchBar setFrame:CGRectMake(0, 0, 300, 30)];
}
爲我工作,我希望你能使其工作
我能夠得到這個代碼來調整搜索欄的寬度,但我的搜索欄還是跳出的我的桌子視圖的頂部,並轉到屏幕的頂部邊緣。如果我嘗試在didPresentSearchController中移動它,那麼儘管給它一個很大的高度或更大的Y位置,它會開始被奇怪地切斷。 –
你可以發佈一些你的代碼,我找不出什麼是缺少的。 – BaranBerk