2010-11-22 29 views
0

J'ai 2 UIScrollview s l'un à côté de l'autre. Ils sont reliés ensemble sur leur valeur verticale. (haut et bas)UIScrollview ne garde pas son niveau

Comme il s'est avéré que j'ai dessiné une sorte de graphique à travers les deux vues (en fait dans chacune des vues ... mais le graphique (une ligne) va visuellement à travers). À un certain moment, lorsque vous effectuez un panoramique et que vous commencez à accélérer et décélérer, les scrollviews ne restent pas au même niveau. Lorsque vous arrêtez ceci, ils reviennent à niveau (dans une sorte d'animation), mais je veux vraiment qu'ils restent ensemble quoi que fasse l'utilisateur. Je jouais beaucoup, mais je manque d'idées, donc toute aide serait grandement appréciée.

Merci

Tom

Répondre

0

il fonctionne si vous parcourt lentement? Je pense que cela dépend de la façon dont vous accrochez uiscrollviews ensemble ... je veux dire que vous passez des valeurs verticales de l'un à l'autre, mais pas l'accélération n'est-ce pas? poster du code s'il vous plaît

+0

salut mec, je vous ai répondu ci-dessus! – Tom

0

ouais, ça marche lentement. ça marche même si je fais un panoramique très rapidement, mais ça casse si je fais beaucoup d'arrêts et d'accélérations.

Fondamentalement, j'ai créé mon uiscrollview dans mon viewcontroller et les ai accrochés dans IB. J'utilise la méthode scrollviewdidScroll-delegate pour les synchroniser. Je l'ai aussi essayé avec KVO, mais pas de différence. ce qui est amusant, c'est que j'ai une scrollview en plus de la scrollview de contenu. Je n'ai jamais réussi à les désynchroniser (contentscroll et columnscroll), peu importe ce que je fais.

  • (void) scrollViewDidScroll: (UIScrollView *) ScrollView { si (scrollView.dragging || scrollView.tracking) {

    if (rowScrollView == scrollView) 
    { 
        [contentScrollView setContentOffset:CGPointMake(contentScrollView.contentOffset.x, scrollView.contentOffset.y) animated:NO]; 
    } 
    else if (columnScrollView == scrollView) 
    { 
        [contentScrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, contentScrollView.contentOffset.y) animated:NO]; 
    } 
    else if (contentScrollView == scrollView) 
    { 
        [columnScrollView setContentOffset:CGPointMake(scrollView.contentOffset.x, 0) animated:NO]; 
        [rowScrollView setContentOffset:CGPointMake(0, scrollView.contentOffset.y) animated:NO]; 
    } 
    

    }

merci

Tom