Parallax-Effekt mit UIScrollView Untersichten

Ich versuche zu schaffen, einen Parallax-Effekt auf ein UIView innerhalb eines UIScrollView.
Die Wirkung scheint zu funktionieren, aber nicht so gut.

  1. Zuerst füge ich zwei UIView sub-views zu einem UIScrollView und legen Sie die UIScrollViews contentSize.
  2. Die Ansichten zusammenfassen und erstellen einer contentSize von {320, 1000}.
  3. Dann habe ich implementiert die folgenden in scrollViewDidScroll:

    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        CGFloat offsetY = scrollView.contentOffset.y;
    
        CGFloat percentage = offsetY / scrollView.contentSize.height;
    
        NSLog(@"percent = %f", percentage);
    
        if (offsetY < 0) {
    
            firstView.center = CGPointMake(firstView.center.x, firstView.center.y - percentage * 10);
    
        } else if (offsetY > 0){
    
            firstView.center = CGPointMake(firstView.center.x, firstView.center.y + percentage * 10);
    
        }
    }

Diese Codezeilen erstellen eine Parallaxe-Effekt, aber das scrollen geht weiter, den Blick nicht zurück zu seiner ursprünglichen position, wenn ich scrollen, um die ursprüngliche Ausgangsposition.

Ich habe versucht, Manipulation der Ansichten, Ebenen und Rahmen, alle mit dem gleichen Ergebnis.

Jede Hilfe wird sehr geschätzt.

  • Die bedingte beträgt Prozentsatz = fabs(Prozentsatz); und das scheint falsch. Wie sieht es aus, wenn Sie ersetzen die bedingte mit nur den else-block?
  • Ich habe nicht versucht, diese, so keine Antwort, aber dieser code sieht vielversprechend zu mir: github.com/ralfbernert/RBParallaxScrolling/blob/master/...
  • wenn ich die Stelle des "ob", sondern nur mit dem "anderen", immer wenn ich nach unten scrollen (offset = -x) die Sicht wird langsam hüpfen.
  • Ich fügte hinzu, ein Bearbeiten, um meine Antwort zu erklären, numerisch, warum dein problem besteht.
InformationsquelleAutor Raz | 2014-03-05
Schreibe einen Kommentar