之前使用的方法是
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x <= 0)
{
CGPoint offset = scrollView.contentOffset;
offset.x = 0;
scrollView.contentOffset = offset;
}
}
但是这样写只能在最左边取消弹簧效果,而且在第一页左划的时候会有BUG,于是稍微做了一些该进,如下
首先我们的scrollview还是要设置代理,然后在初始化scrollview的时候先将弹簧效果设置为NO。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffsetX < (屏幕宽度)) {
scrollView.bounces = NO;
} else {
scrollView.bounces = YES;
}
}
如果想要只有最右边有弹簧效果,注意这样初始化需要把弹簧效果设置为YES。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if (scrollView.contentOffsetX >= (最大宽度-屏幕宽度)) {
scrollView.bounces = NO;
} else {
scrollView.bounces = YES;
}
}
亲测好用,可以试试。
本文介绍如何在UIScrollView中根据条件禁用或启用弹簧效果,通过在scrollViewDidScroll代理方法中检查内容偏移量来动态调整是否允许视图弹跳。

143

被折叠的 条评论
为什么被折叠?



