1

「UISearchDisplayDelegate プロトコル リファレンス」( SearchBar-animated-sample ) の下に、スコープ バー付きのアニメーション化された検索バーの例を見つけました。ここにビデオ プレビューがあります: SearchBarAnimated-video

サンプル コードを確認しましたが、アニメーションをトリガーするコードが見つかりません。そのアニメーションの作成方法を知っている人はいますか? そのアニメーションを取得するには、UISearchBarDelegate を使用する必要がありますか?

4

5 に答える 5

1

UISearchBar のアニメーションを制御するために、ヘッダー ファイルを拡張して UISearchDisplayController のデリゲートを実装しました。代議員は次のとおりです。

    - (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller
    {
        [UIView beginAnimations:nil context:NULL];
        self.searchDisplayController.searchBar.showsScopeBar = NO;
        CGRect headerViewFrame = self.searchDisplayController.searchBar.frame;
        headerViewFrame.origin.y -= 54.0f;
        self.searchDisplayController.searchBar.frame = headerViewFrame;

        CGRect tableViewFrame = self.tableView.frame;
        tableViewFrame.origin.y -= 54.0f;
        self.tableView.frame = tableViewFrame;

        [UIView commitAnimations];
    }

    -(void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller
    {
        [UIView beginAnimations:nil context:NULL];

        CGRect headerViewFrame = self.searchDisplayController.searchBar.frame;
        headerViewFrame.origin.y += 54.0f;
        self.searchDisplayController.searchBar.frame = headerViewFrame;

        CGRect tableViewFrame = self.tableView.frame;
        tableViewFrame.origin.y += 54.0f;
        self.tableView.frame = tableViewFrame;

        [UIView commitAnimations];
    }
于 2014-04-08T08:23:03.810 に答える
0

この質問への回答は、検索バーをビューの上部に自動的に移行しませんが、より便利であることがわかりました。

UISearchBarのスコープバーをアニメーションでどのように非表示/表示しますか?

于 2012-05-11T06:09:39.997 に答える
0

に組み込まれていUISearchBarます。Apple がこれを行います。自分でメソッドを呼び出す必要はありません。

基本的に、検索バーのプロパティを設定した瞬間からscopeButtonTitles、Apple はスコープ バーをアニメーション化します。

于 2011-09-25T11:09:30.040 に答える
0

アニメーション ブロックの sizeToFit

UISearchBarw/scope バーは簡単にアニメーション化できます。UISearchBar の高さは、スコープ バーで sizeToFit を呼び出す前は 44.f で、88.f になります。私の場合、 はInterface Builder 内UISearchBarに埋め込まれていたUITableViewため、自動レイアウト制約を追加できませんでした。

#pragma mark - UISearchBarDelegate methods

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    searchBar.showsScopeBar = YES;
    [UIView animateWithDuration:0.2f animations:^{
        [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;
}
于 2015-06-06T08:43:52.530 に答える