2013-07-31 10 views
5

To nie jest ściśle programistyczne pytanie, ale pytanie "jak to zrobić".Przewijanie widoku Parallax (Yahoo Weather Like)

Jestem ciekawy (i pracuję nad aplikacją, która prawdopodobnie będzie tego wymagać), w jaki sposób realizowane jest przewijanie paralaksy z lewej do prawej. Aby dokładnie wiedzieć, co mam na myśli, sprawdź aplikację Yahoo Weather (jest bezpłatna - nie martw się tam).

Czy używają tylko jednego kontrolera widoku lub oddzielnego kontrolera dla każdego wyświetlanego tam widoku?
Jaki jest najprostszy sposób wdrożenia tego? Znalazłem this topic here, który trochę wyjaśnia, ale kiedy otrzymują informacje z ich serwerów? Czy to po zmianie poglądów lub przy uruchomieniu aplikacji?

Wszelkie informacje na temat sposobu takiego przewijania będą mile widziane.

Odpowiedz

5

To naprawdę proste faktycznie:

  • podklasa UIScrollView
  • Dodaj UIView * parallaxView; jak @property
  • Dodaj CGFloat parallaxFactor jak @property
  • nadpisywania layoutSubviews
  • Super połączeń, a następnie użyj self.scrollOffset * parallaxFactor aby umieścić parallaxView

to jest to!

Sam stworzyłem wielofunkcyjną podklasę UIScrollView, która jest naprawdę prosta w użyciu, idealna do tego przypadku! Pobierz go na GitHub: https://github.com/LeonardPauli/LPParallaxScrollView

Powodzenia!

+0

Tak, to rzeczywiście obsługuje widoczną część. Ale co z funkcjonalnością? Na przykład, jeśli użytkownik chce zaktualizować pogodę, ściąga widok w dół i odświeża informacje o pogodzie. Wątpię, czy używają 'if's do określenia, który widok jest prezentowany. Jakieś pomysły? – Majster

+0

Prosta matematyka! Wkrótce .. –

+0

Jestem open-sourced coś, co zrobiłem jakiś czas temu! https://github.com/LeonardPauli/MYParallaxScrollView Wystarczy użyć parallaxView.currentPageIndex :) Ale jeszcze lepiej, użyj innej pionowej (paralaksa dla prostego bloku) przewijania dla każdej strony, z przeładowaniem tam. (Nie zapomnij o tym, że znaczniki gestów blokują się wzajemnie): D –

Powiązane problemy