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

zek*_*kel 17 iphone animation uisearchbar uisearchbardelegate

我想在表空(在第一次编辑搜索栏之前)时不显示范围栏,在编辑时没有范围栏,最后在编辑完成时显示它.我知道UISearchBarDelegate协议,但我不知道如何用动画显示/隐藏范围栏.我知道UISearchBar有setShowsScopeBar:,但没有setShowsScopeBar:animated:办法setShowsCancelButton:animated.

编辑[searchBar sizeToFit]显示/隐藏范围栏后 调用非常重要.有没有一个很好的方法来动画这个?(我应该做这个?这似乎并没有工作.)

fuz*_*uzz 45

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

完整的代码,带有取消按钮(dis)外观动画的小额奖励:

- (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;
}
Run Code Online (Sandbox Code Playgroud)

编辑 - 版本Swift 3

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
}
Run Code Online (Sandbox Code Playgroud)

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

  • 代码有效,但它在搜索栏的同一行显示范围栏.有没有办法动态显示范围栏,但是在搜索字段后面? (2认同)