Estou desenvolvendo um aplicativo para iOS 7 em Objective-C. Eu tenho uma tela no meu aplicativo com alguns botões e uma bela imagem de fundo. (É um xib simples com UIButtons
em cima de um UIImageView
.)
Eu estava pensando que seria legal se esses botões tivessem o efeito de paralaxe que a tela inicial do iOS 7 tem, então se você inclinar o telefone você pode ver o fundo.
Como posso implementar esse efeito em meu próprio aplicativo?
ios
objective-c
swift
parallax
Dan Fabulich
fonte
fonte
Respostas:
Com o iOS 7, a Apple introduziu
UIMotionEffect
a adição de efeitos de movimento relacionados à orientação do dispositivo do usuário. Por exemplo, para emular o efeito de paralaxe na tela inicial, você pode usar a subclasseUIInterpolationMotionEffect
, conforme explicado aqui e aqui , apenas com algumas linhas de código.Objective-C :
Swift (graças a @Lucas):
Além disso, você pode encontrar várias bibliotecas para fazer isso mais facilmente ou para adicionar essa funcionalidade a versões mais antigas do iOS:
fonte
Traduzido para rápido no caso de alguém ser preguiçoso. Vote na resposta @veducm se você achou isso útil
fonte
A solução de @ veducm pode ser um pouco mais curta. O UIMotionEffectGroup para seu movimento xey torna-se obsoleto se você adicionar os efeitos de movimento dos eixos xey separadamente.
fonte
type
deUIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis
e nãoUIInterpolatingMotionEffectTypeTiltAlongVerticalAxis
como está no código apresentadofonte
Aqui está uma categoria fácil para integrar o efeito no iOs7 +:
https://github.com/jvenegas/TLMotionEffect
fonte
UIMotionEffect fornece uma implementação de paralaxe gratuita no iOS 7.
http://www.teehanlax.com/blog/introduction-to-uimotioneffect/
https://github.com/michaeljbishop/NGAParallaxMotion permite que você apenas defina a intensidade da paralaxe.
fonte
Isso ajudará alguém que está procurando implementar paralaxe para tableView ou collectionView.
Se você quiser implementar isso para collectionView, basta alterar tableView vairable para sua variável collectionView
e é isso. não tenho certeza se esta é a melhor maneira. mas funciona para mim. Espero que funcione para você também. e me avise se houver algum problema
fonte
Realmente muito fácil de fazer isso porque se refere a um código complexo. apenas tente. Trabalhando
Dê uma olhada no imageview exatamente do tamanho da visualização da imagem. por padrão alfa para o conjunto de visualização 0.
fonte
Tradução rápida:
fonte