首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用动画隐藏/显示UISearchBar的范围栏?

如何用动画隐藏/显示UISearchBar的范围栏?
EN

Stack Overflow用户
提问于 2010-06-17 07:56:25
回答 2查看 17.4K关注 0票数 17

我希望在表为空时(在搜索栏第一次编辑之前)不显示范围栏,在编辑时不显示范围栏,最后在编辑完成时显示范围栏。我知道UISearchBarDelegate协议,但我不知道如何用动画显示/隐藏范围栏。我知道UISearchBar有setShowsScopeBar:,但没有像setShowsCancelButton:animated那样的setShowsScopeBar:animated:

编辑在显示/隐藏范围栏之后调用[searchBar sizeToFit]是很重要的。有没有一个很好的方法来制作动画呢?(我应该做this吗?它似乎不起作用。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-30 14:23:32

下面是如何使取消按钮和范围栏仅在编辑时显示。

使用动画cancel按钮(Dis)的外观来完成代码:

代码语言:javascript
复制
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    searchBar.showsScopeBar = YES;
    [searchBar sizeToFit];
    [searchBar setShowsCancelButton:YES animated:YES];

    return YES;
}

- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    searchBar.showsScopeBar = NO;
    [searchBar sizeToFit];
    [searchBar setShowsCancelButton:NO animated:YES];

    return YES;
}

编辑-版本Swift 3

代码语言:javascript
复制
public func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool {
    searchBar.showsScopeBar = true
    searchBar.sizeToFit()
    searchBar.setShowsCancelButton(true, animated: true)

    return true
}

public func searchBarShouldEndEditing(_ searchBar: UISearchBar) -> Bool {
    searchBar.showsScopeBar = false
    searchBar.sizeToFit()
    searchBar.setShowsCancelButton(false, animated: true)

    return true
}

来源:http://www.alexandre-gomes.com/?p=418

票数 46
EN

Stack Overflow用户

发布于 2020-04-28 19:17:23

对于较新的iOS版本(在11-13进行了测试),您不必实现任何委托方法即可工作。

在iOS 13中,默认行为是始终显示范围栏,即使搜索处于非活动状态。以前的iOS版本会在搜索处于活动状态时自动显示和隐藏范围栏。

您需要在viewDidLoad()中添加以下内容

代码语言:javascript
复制
if #available(iOS 13.0, *) {
    searchController.automaticallyShowsScopeBar = true
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3058015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档