我有一个 UIScopeBar 作为 UIVIew 的子视图,作为 UITableView 的对等。当我尝试显示范围栏时,它出现在表格视图的第一行后面。如果我在开始编辑搜索栏时尝试以编程方式将 tableview 向下移动,则会出现第二个未过滤的 tableview,并且仍然覆盖范围栏。如何将范围栏带到“前面”?
1 回答
除非您需要做一些与众不同的事情,否则我认为使用 a UITableviewController
(而不是 UIViewController)和 a UISearchDisplayController
(而不是 UISSearchBar/UIScopeBar)会更好。您可以在情节提要中执行此操作,方法是将 TableView 控制器拖到情节提要上,然后拖出“搜索栏和 SearchDisplay 控制器”并将其放在提供的 TableView 上方,(或者,如果您有 NavBar,则在 TableView 和 NavBar 之间) - 它应该自动锁定到位。
UISearchDisplayController
将自动处理搜索结果表的显示,您可以将其设置为在 searchBar 编辑开始时显示 ScopeBar,或者使用您所做的情节提要,或者以编程方式使用以下内容:
self.searchDisplayController.searchBar.showsScopeBar = YES;
否则,如果你想坚持你所描述的,那么如果我理解你的设置,你有一个 UIViewController,你在其中添加了两个子视图,一个带有 ScopeBar 的 UISearchBar 和一个 UITableView。
在不查看代码的情况下很难准确说出您想要做什么,但是如果您将 SearchBar 拖到您的 tableview 中,那么它将自己附加为您的 tableViews tableHeaderView,然后它将在顶部显示带有 ScopeBars 的 SearchBar tableview,我认为这是你想要的。
希望有帮助!