0
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    lastOffset = scrollView.contentOffset;

    if (scrollView.contentOffset.y < lastOffset.y) {
        [self.navigationController setNavigationBarHidden:YES animated:YES];
        [self.navigationController setToolbarHidden:YES animated:YES];
    }
    else {
        [self.navigationController setNavigationBarHidden:NO animated:YES];
        [self.navigationController setToolbarHidden:NO animated:YES];
    }
}

私は何を間違っていますか?UIScrollViewDelegate は既にヘッダー ファイルに設定されています。

4

2 に答える 2

4

You should move

lastOffset = scrollView.contentOffset;

to the end of the method, otherwise

scrollView.contentOffset.y < lastOffset.y

will never be true.

于 2012-08-29T19:11:36.070 に答える
1

else部分のコードが毎回呼び出されるため、非表示にはなりません。contentOffset = (100, 100) とすると、最後のオフセットを contentOffset に設定if (scrollView.contentOffset.y < lastOffset.y)すると、決して true にはなりません。scrollViewDidScrolllastOffset = scrollView.contentOffset;メソッドの最後に配置します。

于 2012-08-29T19:14:02.623 に答える