12

行ではなくセクションにスクロールできますか? もしそうなら、どのように?

ところで。フローティングヘッダーを削除する方法を使用しています。

選択したセクションの最初の行に移動するために使用するコードを次に示します。

if (self.openSectionIndex != NSNotFound) {
    [self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:section] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

これは、フローティングヘッダーを削除するコードです

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (self.openSectionIndex != NSNotFound) {
        if (scrollView.contentOffset.y<=DEFAULT_HEADER_HEIGHT&&scrollView.contentOffset.y>=0) {
            scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
        } else if (scrollView.contentOffset.y>=DEFAULT_HEADER_HEIGHT) {
            scrollView.contentInset = UIEdgeInsetsMake(-DEFAULT_HEADER_HEIGHT, 0, 0, 0);
        }
    }
}

これはどういうわけか私が望むものですが、ヘッダーも表示したいと思います。

現在、ヘッダーは上部の画面外に隠されています。

4

1 に答える 1

8

の代わりにscrollToRowAtIndexPath、 を使用しますscrollRectToVisible。テーブル ビューと同じサイズの rect を渡すことで、正確な位置を取得できます。

したがって、ヘッダーを正確に上部に配置する場合は、ヘッダーのフレームを使用して、高さをテーブル ビューの高さに設定し、それを に渡しscrollRectToVisibleます。

于 2013-08-06T17:14:42.280 に答える