私の iOS アプリでは、右側の検索ボタンを my に配置したいと考えていUINavigationController
ます。ユーザーがボタンに触れると、UISearchBar
上記の myUITableView
が表示されます。
ビューが読み込まれると非表示になり、ユーザーが の [キャンセル] ボタンをUISearchBar
クリックすると再び非表示になります。UISearchDisplayController
どこでも検索しましたが、例が見つかりません。ヘルプ?
私の iOS アプリでは、右側の検索ボタンを my に配置したいと考えていUINavigationController
ます。ユーザーがボタンに触れると、UISearchBar
上記の myUITableView
が表示されます。
ビューが読み込まれると非表示になり、ユーザーが の [キャンセル] ボタンをUISearchBar
クリックすると再び非表示になります。UISearchDisplayController
どこでも検索しましたが、例が見つかりません。ヘルプ?
ここに素敵なサンプル プロジェクトがあります。重要なポイントは次のとおりです。
1. ビューを表示する前に検索バーを非表示にします。
-(void)viewWillAppear:(BOOL)animated {
[self hideSearchBar];
}
-(void)hideSearchBar {
CGRect newBounds = self.tableView.bounds;
newBounds.origin.y = newBounds.origin.y + self.searchBar.bounds.size.height;
self.tableView.bounds = newBounds;
}
2.検索ボタンのアクションターゲットに、検索バーを表示する
// make the search bar visible
// code example from https://github.com/versluis/Table-Seach-2013 to deal with iOS 7 behavior
-(IBAction)displaySearchBar:(id)sender {
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
NSTimeInterval delay;
if (self.tableView.contentOffset.y >1000) delay = 0.4;
else delay = 0.1;
[self performSelector:@selector(activateSearch) withObject:nil afterDelay:delay];
}
- (void)activateSearch
{
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
[self.searchBar becomeFirstResponder];
}
3.最後に、キャンセルをクリックすると検索バーを非表示にします
-(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
[self hideSearchBar];
}