2011-04-05 70 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)的高度應至少在設備屏幕高度小的彈跳限制。