[英]Positioning of scope bar in UISearchController
我正在开发一个仅限iPad的应用程序,并且在UIViewController中有一个UITableView。 我将UISearchController设置为UITableView的标题。 此搜索控件具有三个范围。 我希望范围选择器位于搜索栏下方 。 使用下面的代码,我可以在init上获取它,但是当我从输入开始时,选择器将移至右侧, 并保持在那里 。
这是一个动画:
这是相关的代码:
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];
提前致谢
我还在我的应用程序中合并了一个UISearchController。 我正在使用Xcode 7.1。
我遇到了同样的问题,只是从代码中删除了“ self.searchController.searchBar.showsScopeBar”。
将该值更改为false或将其完全删除。
self.searchController.searchBar.showsScopeBar = false
这是我从苹果那里读到的一些有趣的东西:
存在搜索栏时,范围栏可能会出现在其附近。 除非您在代码中使用搜索显示控制器,否则范围栏将显示在搜索栏下方,除非您在代码中使用了搜索显示控制器(有关其工作方式的更多信息,请参见UISearchDisplayController类参考)。 当您使用搜索显示控制器时,当设备处于横向(纵向)时,范围栏会显示在搜索栏右侧的搜索栏内(纵向,它位于搜索栏下方)。
因此,对我有用的是仅使用UISearchBar而不是整个UISearchDisplayController。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.