0

検索バーなどの非表示のヘッダー ビューをテーブル ビューに追加すると、スクロールのオフセットを検索バーの中央に設定すると、コンテンツの上部またはテーブル セルの上部に自動的にスクロールします。(私は以下のコードを使用しました)

// in viewDidLoad section
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]
[self.tableView setTableHeaderView:searchBar]

// in viewWillAppear: section
[self.tableView setContentOffset:CGPointMake(0, 44)];

たとえば、検索バーが非表示のときに少し上にスクロールすると、自動的にスクロールして検索バー全体が表示されます。また、検索バーが表示されているときに少し下にスクロールすると、自動的にスクロールして検索バーが非表示になります。

以下のコードを使用して、この機能をコレクション ビューのヘッダーに実装しましたが、それはテーブル ビューの機能とまったく同じではありませんでした。

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    CGFloat offset = scrollView.contentOffset.y;
    if (offset > 22 && offset < 44) {
        [scrollView setContentOffset:CGPointMake(0, 44) animated:YES];
    } else if (offset > 44) {
        return;
    } else {
        [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
    }
}

検索バー全体を表示するか、検索バーを非表示にするかの判断は非常に微妙であるため、上記の機能を正確に模倣することは非常に難しいと思います。

だから私の質問は、「iOS SDK または UICollectionViewController に事前実装されたメソッドはありますか?」です。

何時間もグーグル検索しましたが、答えが見つかりませんでした。

4

1 に答える 1