2011-04-05 37 views

回答

1

不完全禁用它,通过UIScrollView属性bounces。这几乎是一个或多或少的事情。

1

我很怀疑。滚动视图的弹性是一个实现细节,并且UIScrollView类不会显示让您调整该属性的属性。

2

您可以检查,并在scrollViewDidScroll方法设置contentOffset属性:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{  
    if (scrollView.contentOffset.y <= -100) 
    { 
     CGPoint offset = scrollView.contentOffset; 
     offset.y = -100; 
     scrollView.contentOffset = offset; 
    }  
} 
1

至于附加到René Fischer答案跟随完整的代码,以减少反弹的顶部和底部。

夫特版本:

override func scrollViewDidScroll(scrollView: UIScrollView) { 

    var offset = scrollView.contentOffset; 

    if (offset.y < bounceLimit) { 
     offset.y = bounceLimit; 
     scrollView.contentOffset = offset; 
    } 

    let offsetY = scrollView.contentSize.height - scrollView.bounds.height - offset.y 
    if (offsetY < bounceLimit) { 
     offset.y = scrollView.contentOffset.y - (bounceLimit + abs(offsetY)); 
     scrollView.contentOffset = offset; 
    } 
} 

的OBJ-C版本:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    CGPoint offset = scrollView.contentOffset; 

    if (offset.y <= -100) 
    { 
     offset.y = -100; 
     scrollView.contentOffset = offset; 
    } 

    CGFloat offsetY = scrollView.contentSize.height - scrollView.bounds.height - offset.y 

    if (offsetY < bounceLimit) { 
     offset.y = offset.y - (bounceLimit + abs(offsetY)); 
     scrollView.contentOffset = offset; 
    } 
} 

注:表(contentSize.height)的高度应至少在设备屏幕高度小的弹跳限制。