是什么让searchDisplayController显示scopeBar?

时间:2012-10-05 17:35:30

标签: ios uisearchbar uisearchdisplaycontroller

我知道有一个属性searchDisplayController.searchBar.showsScopeBar,但在我的发现中,即使我们将showsScopeBar设置为NO,但将其searchDisplayController.searchBar.scopeButtonTitles属性设置为某个数组,范围栏也会显示标题。将showsScopeBar设置为YES,将scopeButtonTitles设置为nil,则不会显示scopeBar

所以,我认为showsScopeBar属性实际上没用,但显示或隐藏scopeBar实际上取决于我们是否将数组设置为scopeButtonTitles属性。

这可能吗?或者我错过了其他的东西。

2 个答案:

答案 0 :(得分:1)

确保您的UISearchBar在范围栏出现时有空间扩展。我把UISearchBar放在一个320x44px的固定框架内并且当示波器栏打开时我犯了一个错误,它只是没有空间可见(320x88px)。此外,UISearchBar在表的标题视图中也必须被告知刷新。

[self.tableView beginUpdates];
[self.searchBar setShowsScopeBar:YES]; 
[self.tableView endUpdates];

答案 1 :(得分:0)

首先,准确一下,showsScopeBar和scopeButtonTitles 是UISearchBar类的属性。

它是这样的:

  • 如果scopeButtonTitles有值,则showsScopeBar == NO
    只有在用户单击“搜索”文本框后,范围按钮才会显示。

  • 如果scopeButtonTitles有值,则showsScopeBar ==是
    即使在用户单击“搜索”文本框之前,也会显示范围按钮 (非常难看,不要这样)

  • 如果scopeButtonTitles为零 无论showsScopeBar值或用户交互如何,都不会显示范围按钮。

您可以使用Interface Builder来玩它:
单击“搜索栏”控制器,然后转到“属性检查器”选项卡。