0

このような UI 機能を実装する方法はあるのでしょうか。xcode 5 で検索バーと searchDisplay コントロールをドラッグしたときにわかるように、検索バーと searchDisplayController を含む一連の検索コントロールが与えられます。

ネイティブの検索バーを使用する代わりに、ボタンを使用して、最新の facebook アプリのような検索表示コントロールをトリガーしたいと考えています。

検索バーを削除しようとしました。しかし、表示コントロールは直接失敗しました。tableView 内に検索バーを挿入しようとしました (これが正しいかどうかはわかりません)。

ここに画像の説明を入力

- (void)viewDidLoad
{
   [self hideSearchBar];
}

- (void)hideSearchBar
{
    self.UISearchBar.hidden = YES;
     self.UISearchBar.bounds = CGRectMake(0, 0, 0, 0);
}

- (IBAction)SearchClicked:(UIButton *)sender {
    [self.searchDisplayController setActive:YES animated:NO];
    self.UISearchBar.hidden = NO;
}

- (void) searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
{
   [self hideSearchBar];
}

しかし、それに関する問題は次のとおりです。

検索をキャンセルすると、スクロール ビューが以前の状態に戻りません。(非表示の検索バーが置かれる隙間があります)。

これを見る代わりに:

ここに画像の説明を入力

検索ビューでキャンセルボタンがクリックされたときにこれを見たいです。

ここに画像の説明を入力

この問題に対処するにはどうすればよいですか?

より良い解決策を提供してくれる機関はありますか?

ありがとう

4

3 に答える 3

1

とても簡単!

 -(void) searchBarCancelButtonClicked:(UISearchBar *)searchBar{
        [self.searchDisplayController setActive:NO animated:YES];
        self.navigationController popToViewController:UIViewControllerA animated:YES;
    }
于 2013-10-25T08:13:59.057 に答える
0

scrollview の元の中心に基づいて CGPoint を作成します。viewDidLoad() で:

self.originalCenter = scrollView.center;

ユーザーが検索バーを閉じると、次のようになります。

- (void)hideSearchBar
    scrollView.center = self.originalCenter;

scrollView は、UIScrollView と呼んだものです。

于 2013-10-25T04:32:12.773 に答える