【问题标题】:Positioning of scope bar in UISearchControllerUISearchController 中范围栏的定位
【发布时间】:2015-10-28 11:56:06
【问题描述】:

我正在开发一个仅限 iPad 的应用程序,并且我在 UIViewController 中有一个 UITableView。我将 UISearchController 设置为 UITableView 的标题。此搜索控件具有三个范围。我希望范围选择器位于搜索栏下方。使用以下代码,我可以在初始化时获取它,但是当我从输入开始时,选择器会向右移动,并保持在那里

这是一个动画:

这里是相关代码:

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

提前致谢

【问题讨论】:

    标签: ios objective-c ipad uisearchbar uisearchcontroller


    【解决方案1】:

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

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

    要么将值更改为 false,要么将其完全删除。

    self.searchController.searchBar.showsScopeBar = false

    【讨论】:

    • 不适用于我,抱歉...问题仍然存在。还是谢谢
    • 我完成了一个定制组件,见here
    • 我接受你的回答,因为你是唯一这样做的人
    【解决方案2】:

    这是我从苹果那里读到的一些有趣的东西:

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

    所以对我有用的是只使用 UISearchBar 而不是整个 UISearchDisplayController。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多