Situation: J'ai une sorte de barre d'outils (pas un UIToolbar, juste un UIView personnalisé) qui se trouve en haut de ma vue. Cette barre d'outils a un certain nombre de boutons. Juste en dessous, j'ai un scrollview avec un formulaire. Lorsqu'un bouton de la barre d'outils est appuyé, le formulaire correspondant doit être animé sur l'écran à partir de la droite ou de la gauche, selon le bouton tapé. Je ne veux pas que la barre d'outils bouge. Cependant, je souhaite que la barre d'outils défile vers le haut lorsque l'utilisateur fait défiler vers le haut ou vers le bas dans la vue défilement. La façon dont je l'ai accompli, il est maintenant dans la méthode déléguée scrollViewDidScroll (notez que je permets que le défilement horizontal si elle est d'appuyer sur un bouton de la barre d'outils):Stratégies UIScrollView pour le défilement horizontal et vertical
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
if(scrollView.contentOffset.x != 0 && _shouldScrollHorizontally == NO)
{
CGPoint offset = scrollView.contentOffset;
offset.x = 0;
scrollView.contentOffset = offset;
}
CGRect buttonFrame = [_buttons frame];
buttonFrame.origin.y = -scrollView.contentOffset.y + 10;
[_buttons setFrame:buttonFrame];
}
Cependant, je crains que cela est inefficace et entraînera une certaine latence. Je me demande s'il y a une meilleure façon d'accomplir ce que j'essaie d'accomplir. À la fin de la journée, je souhaite que la barre d'outils reste immobile si la barre de défilement est défilée horizontalement, mais pour que la barre de défilement se déplace avec la barre de défilement si la barre de défilement défile verticalement.
Merci pour vos suggestions!
vous voulez dire que vous voulez une carte graphique comme ancienne impulsion, ou postpiks. – rptwsthi
Que voulez-vous dire? – Mason