est-il possible réduire la hauteur de rebond en haut ou à la fin d'un UITableView?réduire bouncing UITableView
Merci
est-il possible réduire la hauteur de rebond en haut ou à la fin d'un UITableView?réduire bouncing UITableView
Merci
Non sans le désactiver entièrement, via la propriété UIScrollView
bounces
. C'est à peu près une chose sur-ou-off.
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.
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;
}
}
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.