iOS - 即使在单击取消按钮后仍保留 ScopeBar

Posted

技术标签:

【中文标题】iOS - 即使在单击取消按钮后仍保留 ScopeBar【英文标题】:iOS - Keep ScopeBar even after Cancel Button click 【发布时间】:2015-11-24 10:20:51 【问题描述】:

我从一开始就将 setShowsScopeBar 设置为 TRUE,并且效果很好。但是,一旦我搜索某些内容然后取消搜索,范围栏就会消失。

How to keep scopebar even after pressed Cancel button?

显然,在早期版本中,使用 UISearchBar,

    - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar

    [searchBar setShowsScopeBar:YES];
    return YES;

这行得通。但是有了 SearchController,情况就不同了。

我试过这个:

- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar 
    searchController.searchBar.showsScopeBar = YES;
    [searchController.searchBar sizeToFit];
    isSearching = NO;

没有运气。

ios 9 上是否有任何可能的解决方案?

【问题讨论】:

如果您希望范围栏始终可见,请使用 UISegmentedControl 而不是范围栏。 @PraveenGowdaIV:发布此评论作为答案。 【参考方案1】:

除非您使用一些技巧,否则没有直接的方法可以保持范围栏始终可见。

改为使用UISegmentedControl,它看起来像一个范围栏。然后根据选择的segment处理 - updateSearchResultsForSearchController:中搜索结果的过滤。

【讨论】:

有谁知道这是否仍然是这种情况,或者现在有没有办法让范围栏在 iOS 11/Swift 4 中保持可见?【参考方案2】:

该元素是具有 UISegmentedControlStyleBar 样式的 UISegmentedControl。您可以设置 tintColor 属性来获得所需的颜色。只需将视图放在表格视图上方,您就可以得到类似截图的内容。

【讨论】:

以上是关于iOS - 即使在单击取消按钮后仍保留 ScopeBar的主要内容,如果未能解决你的问题,请参考以下文章

即使在键盘关闭时也保持搜索栏取消按钮的颜色

即使在应用程序被删除后仍接收推送通知 iPhone

Unity UI Button 具有疯狂的过渡状态行为 - 单击后仍保持突出显示

如何在按钮单击时重置 reactstrap 中选择和输入组件的值?

Android - 在按钮单击时取消静音 VideoView

UIPrintInteractionController 仅在 iOS 14 上单击“取消”按钮时崩溃