Rozwijam aplikację na iOS 7 w Objective-C. Mam ekran w mojej aplikacji z kilkoma przyciskami i ładnym obrazem tła. (To prosty xib z UIButtons
górną częścią a UIImageView
.)
Pomyślałem, że byłoby fajnie, gdyby te przyciski miały efekt paralaksy, który ma ekran główny iOS 7, więc jeśli przechylisz telefon, zobaczysz tło.
Jak mogę zaimplementować ten efekt we własnej aplikacji?
ios
objective-c
swift
parallax
Dan Fabulich
źródło
źródło
Odpowiedzi:
W iOS 7 firma Apple wprowadziła
UIMotionEffect
dodawanie efektów ruchu, które są związane z orientacją urządzenia użytkownika. Na przykład, aby emulować efekt paralaksy na ekranie głównym, możesz użyć podklasyUIInterpolationMotionEffect
, jak wyjaśniono tutaj i tutaj , z kilkoma wierszami kodu.Cel-C :
Swift (dzięki @Lucas):
Możesz również znaleźć kilka bibliotek, aby to zrobić łatwiej lub dodać tę funkcję do starszych wersji iOS:
źródło
Przetłumaczone na szybkie na wypadek, gdyby ktoś był leniwy. Zagłosuj na odpowiedź @veducm , jeśli uznasz to za przydatne
źródło
Rozwiązanie @ veducm może być trochę krótsze. Grupa UIMotionEffectGroup dla jej ruchu xiy jest przestarzała, jeśli dodasz osobno elementy motionEffects na osi xi y.
źródło
type
odUIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis
a nieUIInterpolatingMotionEffectTypeTiltAlongVerticalAxis
jak to jest w kodzie określonymiźródło
Oto prosta kategoria do zintegrowania wpływu na iOs7 +:
https://github.com/jvenegas/TLMotionEffect
źródło
UIMotionEffect zapewnia bezpłatną implementację paralaksy w systemie iOS 7.
http://www.teehanlax.com/blog/introduction-to-uimotioneffect/
https://github.com/michaeljbishop/NGAParallaxMotion pozwala po prostu ustawić intensywność paralaksy.
źródło
Pomoże to komuś, kto chce zaimplementować paralaksę dla tableView lub collectionView.
Jeśli chcesz zaimplementować to do collectionView, po prostu zmień tableView vairable na zmienną collectionView
i to wszystko. nie jestem pewien, czy to najlepszy sposób. ale to działa dla mnie. mam nadzieję, że to też działa dla Ciebie. i daj mi znać, jeśli jest jakiś problem
źródło
Naprawdę bardzo łatwo to zrobić, dlaczego odsyła złożony kod. po prostu spróbuj. Pracujący
Przyjrzyj się widokowi obrazu dokładnie wielkości widoku obrazu. domyślnie alfa dla widoku zestawu 0.
źródło
Szybkie tłumaczenie:
źródło