UIScrollView仅在底部禁用垂直反弹

sqr*_*ept 23 objective-c ios

我一直在寻找一种方法来禁用UIScrollView的垂直反弹但只在底部.我仍然需要在顶部反弹.

找不到任何东西.这可能吗?

提前致谢!

Mic*_*lum 54

使用UIScrollViewDelegate方法scrollViewDidScroll检查scrollview的内容偏移量,或多或少检查用户是否尝试滚动超出滚动视图的底部边界.然后使用它将滚动设置回滚动视图的末尾.它发生得如此之快,以至于你甚至无法告诉滚动视图反弹或超出其范围.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height) {
        [scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, scrollView.contentSize.height - scrollView.frame.size.height)];
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这个好吗 ?if(scrollView.contentOffset.y <= 0){[scrollView setContentOffset:CGPointMake(scrollView.contentOffset.x,0)]; } (2认同)

efr*_*dze 9

要在Swift中禁用顶部的垂直反弹:

func scrollViewDidScroll(scrollView: UIScrollView) {
    if scrollView.contentOffset.y < 0 {
        scrollView.contentOffset.y = 0
    }
}
Run Code Online (Sandbox Code Playgroud)