2010-06-16 97 views
15

我想在表格爲空時(在搜索欄第一次編輯之前)不顯示範圍欄,編輯時沒有範圍欄,編輯完成時最後顯示它。我知道UISearchBarDelegate協議,但我不知道如何使用動畫顯示/隱藏範圍欄。我知道UISearchBar有setShowsScopeBar:,但沒有setShowsScopeBar:animated:它爲setShowsCancelButton:animated做的方式。如何用動畫隱藏/顯示UISearchBar的範圍欄?

編輯 在顯示/隱藏範圍欄之後重要的是調用[searchBar sizeToFit]。有沒有一個好的方法來動畫? (我應該怎麼做this?它似乎不工作。)

+0

想知道同樣的: - 版本雨燕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 } 

來源

- (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; } 

編輯:

與動畫的取消按鈕的(DIS)的外觀的獎金不多完整代碼事情,這有點不一致。 – 2011-04-21 09:57:31

回答

43

以下是如何使取消按鈕和範圍欄只在編輯時顯示。 http://www.alexandre-gomes.com/?p=418

+2

該代碼可以工作,但它顯示的範圍欄與搜索欄位於同一行。有沒有辦法動態顯示範圍欄,但在搜索字段下方? – andrei 2017-02-15 09:44:13

+0

你有沒有找到解決這個問題的方法@andrei? – 2017-12-30 09:34:08