0

私の iOS アプリでは、右側の検索ボタンを my に配置したいと考えていUINavigationControllerます。ユーザーがボタンに触れると、UISearchBar上記の myUITableViewが表示されます。

ビューが読み込まれると非表示になり、ユーザーが の [キャンセル] ボタンをUISearchBarクリックすると再び非表示になります。UISearchDisplayController

どこでも検索しましたが、例が見つかりません。ヘルプ?

4

1 に答える 1

1

ここに素敵なサンプル プロジェクトがあります。重要なポイントは次のとおりです。

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];
}
于 2013-10-31T15:02:47.970 に答える