我有一个 ScrollView 应该只能向下滚动。内容视图的大小与滚动视图完全相同。我使用此代码来防止向上滚动:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
#define CONTENT_OFFSET 0
NSLog(@"%f", scrollView.contentOffset.y);
//prevent from scrolling up
if (scrollView.contentOffset.y > CONTENT_OFFSET) {
scrollView.contentOffset = CGPointMake(0, CONTENT_OFFSET);
}
}
它曾经工作得很好。但现在由于某种原因,滚动视图从 -44 点开始,当然可以滚动到 0。在 -44 和 0 之间,如果拖动结束,它不会反弹。我很确定我没有改变布局中的任何内容,但我可能无意中改变了。我认为出于某种原因,滚动视图现在具有更大的内容视图。我该去哪里寻找这个问题的根源?
关于这个令人难以置信的老问题,它只与
有关contentInsetAdjustmentBehavior = .never
本质上,在所有正常的现实项目中,您必须始终在 UITableView 和 UIScrollView 上设置
contentInsetAdjustmentBehavior
。
这个微妙的细节根据具体的问题而有所不同,并且确实有数百个关于它的 QA!但这里问题的一般答案是“忘记设置 contentInsetAdjustmentBehavior”。