如何在iOS 8中分离搜索栏和tableview

时间:2015-03-23 14:14:46

标签: ios objective-c searchbar

我构建了searchController和tableview。

但是我提到了更多的网络文档。始终将searchBar添加到tableview标题。

如下所示:

 self.displayTableView.tableHeaderView = self.searchController.searchBar;

但是现在我不想将searchBar添加到tableHeaderView。

我尝试直接添加视图(searchBarBgVW)。但是searchrBar并没有在屏幕上显示。

如下:

 - (void)viewDidLoad {
     [super viewDidLoad];
  ......
  .........
 // --- search bar declare ---

 self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];

 //    self.searchController.searchBar.frame = CGRectMake(self.searchController.searchBar.frame.origin.x,      self.searchController.searchBar.frame.origin.y,      self.searchController.searchBar.frame.size.width, 44.0);
 //    self.displayTableView.tableHeaderView = self.searchController.searchBar;

 self.searchController.searchResultsUpdater = self;

 self.searchController.searchBar.frame = CGRectMake(0, 0, self.searchController.searchBar.frame.size.width, 44.0);    
 [self.searchBarBgVW addSubview: self.searchController.searchBar];

 self.searchController.searchBar.delegate = self;
 self.definesPresentationContext = YES;
 .....
 ....
 ..
 }

如果我打开关于tableheader的评论,如下所示:

 self.searchController.searchBar.frame = CGRectMake(0, 0,      self.searchController.searchBar.frame.size.width, 44.0);

     self.searchController.searchResultsUpdater = self;
     self.displayTableView.tableHeaderView = self.searchController.searchBar;
     [self.view addSubview: self.searchController.searchBar];

搜索栏将显示在地点(0,0),

但TableHeader将显示白色块。

enter image description here

如何使用searchController以正确的方法添加搜索栏位置?或者如何删除tableviewheader白色块?

非常感谢。

1 个答案:

答案 0 :(得分:0)

Apple有一个(新的)UICatalog sample,其中包含各种搜索功能。它分为非常简单的控制器。它在Swift和ObjC中提供。