2011-04-05 1 views

Répondre

1

Non sans le désactiver entièrement, via la propriété UIScrollViewbounces. C'est à peu près une chose sur-ou-off.

1

Je doute. L'élasticité des vues de défilement est un détail d'implémentation et il ne semble pas que la classe UIScrollView expose des propriétés qui vous permettent de l'ajuster.

2

Vous pouvez vérifier et définir la propriété contentOffset dans la méthode scrollViewDidScroll:

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

En plus de René Fischer réponse suivre le code complet pour réduire le dessus de rebond et en bas.

Version Swift:

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 Version:

-(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; 
    } 
} 

Remarque: La hauteur de la table (contentSize.height) doit être au moins la hauteur de l'écran de l'appareil moins la limite de rebond.

Questions connexes