- (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已经在我的头文件中设置。
答案 0 :(得分:4)
你应该移动
lastOffset = scrollView.contentOffset;
到方法的末尾,否则
scrollView.contentOffset.y < lastOffset.y
永远不会成真。
答案 1 :(得分:1)
它不会被隐藏,因为每次调用 else 部分中的代码时。
假设contentOffset =(100,100)
然后你将最后一个偏移量设置为等于contentOffset,所以if (scrollView.contentOffset.y < lastOffset.y)
它永远不会成立。将lastOffset = scrollView.contentOffset;
放在scrollViewDidScroll方法的末尾。