范围栏在UISearchController

时间:2015-10-28 11:56:07

标签: ios objective-c ipad uisearchbar uisearchcontroller

我正在开发一个仅限iPad的应用程序,而且我在UIViewController中有一个UITableView。我设置了一个 UISearchController 作为UITableView的标题。此搜索控件有三个范围。我希望范围选择器在搜索栏下方 。使用下面这段代码,我可以在init处获得它,但是当我从输入开始时,选择器向右移动,并保持

这是一个动画:

F***ing scope selector

以下是相关代码:

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

self.searchController.searchBar.scopeButtonTitles = @[@"Uno",@"Dos", @"Tres"];
self.searchController.searchBar.delegate = self;
self.tableView.tableHeaderView = self.searchController.searchBar;
self.searchController.searchBar.showsScopeBar = YES;
self.definesPresentationContext = YES;

[self.searchController.searchBar sizeToFit];

提前致谢

2 个答案:

答案 0 :(得分:1)

我还在我的应用程序中加入了一个UISearchController。我正在使用Xcode 7.1。

我遇到了同样的问题,只是删除了" self.searchController.searchBar.showsScopeBar"从我的代码。

将值更改为false或将其完全删除。

self.searchController.searchBar.showsScopeBar = false

答案 1 :(得分:0)

这是我从苹果那里读到的有趣内容:

  

当存在搜索栏时,可在其附近显示范围栏。该   范围栏显示在搜索栏下方,无论方向如何,   除非您在代码中使用搜索显示控制器(更多信息)   有关其工作方式的信息,请参阅UISearchDisplayController类   参考)。使用搜索显示控制器时,范围栏为   显示在搜索栏右侧的搜索栏中   设备处于横向(纵向,是   在搜索栏下方。)

那么对我有用的只是使用UISearchBar而不是整个UISearchDisplayController。