[英]how to show cancel button of searchbar?
當用戶開始在搜索欄上進行編輯時,我想隱藏頁面的導航欄,我也想顯示一個取消按鈕。
完成了,但是當我調出UISearchBar時,無法使用我的取消按鈕。
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
self.navigationController.navigationBar.hidden=TRUE;
CGRect r=self.view.frame;
r.origin.y=-44;
r.size.height+=44;
self.view.frame=r;
searchBar.showsCancelButton=TRUE;
}
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
self.navigationController.navigationBar.hidden = TRUE;
CGRect r = self.view.frame;
r.origin.y = -44;
r.size.height += 44;
self.view.frame = r;
[searchBar setShowsCancelButton:YES animated:YES];
}
-(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:NO animated:YES];
}
func searchBarTextDidBeginEditing(searchBar: UISearchBar) {
self.navigationController.navigationBar.hidden = true
var r = self.view.frame
r.origin.y = -44
r.size.height += 44
self.view.frame = r
searchBar.setShowsCancelButton(true, animated: true)
}
func searchBarTextDidEndEditing(searchBar: UISearchBar) {
searchBar.setShowsCancelButton(false, animated: true)
}
使用此代碼顯示/隱藏SearchBar
的“取消”按鈕
用戶將開始在SearchBar中進行編輯。
只有正確設置了SearchBar
的委托,才能使用以下方法。
-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
//This'll Show The cancelButton with Animation
[searchBar setShowsCancelButton:YES animated:YES];
//remaining Code'll go here
}
隱藏CancelButton
為用戶點擊取消按鈕
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
{
//This'll Hide The cancelButton with Animation
[searchBar setShowsCancelButton:NO animated:YES];
//remaining Code'll go here
}
使用此代碼
searchBar.showsCancelButton=YES;
使用此代碼顯示cancel
按鈕。 當您在searchBar
輸入文本時,它將顯示按鈕。
-(void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:YES animated:YES];
}
斯威夫特4:
下面的兩行代碼為我顯示了“取消”按鈕:
searchBar.setShowsCancelButton(true, animated: true)
searchBar.showsCancelButton = true
單擊搜索欄后,在searchBarTextDidBeginEditing()
方法內部調用將顯示取消按鈕。
您需要使用UISearchDisplayController,它將為您自動隱藏導航欄。 這是代碼,
-(void) createSearchBar
{
_searchBar = [[SearchBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
_searchBar.delegate = self;
[self.view addSubview:_searchBar];
searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:_searchBar contentsController:self];
searchDisplayController.delegate = self;
searchDisplayController.searchResultsDataSource = self;
searchDisplayController.searchResultsDelegate = self;
searchDisplayController.searchResultsTableView.sectionHeaderHeight = 10;
searchDisplayController.searchResultsTableView.sectionFooterHeight = 0;
[searchDisplayController.searchResultsTableView setSeparatorColor:[Color whiteColor]];
}
您將必須在.h文件中實現協議UISearchBarDelegate,UISearchDisplayDelegate,UITableViewDelegate,UITableViewDataSource。
_searchBar和searchDisplayController也是.h文件中定義的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.