Je développe une application pour iOS 7 en Objective-C. J'ai un écran dans mon application avec quelques boutons et une jolie image de fond. (C'est un simple xib avec UIButtons
au dessus d'un UIImageView
.)
Je pensais que ce serait cool si ces boutons avaient l'effet de parallaxe de l'écran d'accueil d'iOS 7, donc si vous inclinez le téléphone, vous pouvez voir l'arrière-plan.
Comment puis-je implémenter cet effet dans ma propre application?
ios
objective-c
swift
parallax
Dan Fabulich
la source
la source
Réponses:
Avec iOS 7, Apple a introduit l'
UIMotionEffect
ajout d'effets de mouvement liés à l'orientation de l'appareil de l'utilisateur. Par exemple, pour émuler l'effet de parallaxe sur l'écran d'accueil, vous pouvez utiliser la sous-classeUIInterpolationMotionEffect
, comme expliqué ici et ici , juste avec quelques lignes de code.Objectif-C :
Swift (Merci à @Lucas):
En outre, vous pouvez trouver un tas de bibliothèques pour le faire plus facilement ou pour ajouter cette fonctionnalité aux anciennes versions d'iOS:
la source
Traduit pour rapide au cas où quelqu'un serait paresseux. Veuillez voter @veducm pour répondre si vous avez trouvé cela utile
la source
La solution de @ veducm peut être un peu plus courte. UIMotionEffectGroup pour ses mouvements x et y est obsolète si vous ajoutez séparément les motionEffects des axes x et y.
la source
type
deUIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis
et nonUIInterpolatingMotionEffectTypeTiltAlongVerticalAxis
comme dans le code Disposéesla source
Voici une catégorie facile pour intégrer l'effet sur iOs7 +:
https://github.com/jvenegas/TLMotionEffect
la source
UIMotionEffect fournit une implémentation de parallaxe gratuite sur iOS 7.
http://www.teehanlax.com/blog/introduction-to-uimotioneffect/
https://github.com/michaeljbishop/NGAParallaxMotion vous permet simplement de définir l'intensité de parallaxe.
la source
Cela aidera quelqu'un qui cherche à implémenter la parallaxe pour tableView ou collectionView.
Si vous souhaitez implémenter cela dans collectionView, changez simplement le vairable tableView en votre variable collectionView
et c'est tout. je ne sais pas si c'est la meilleure façon. Mais cela fonctionne pour moi. J'espère que ça marchera pour toi aussi. et faites-moi savoir s'il y a un problème
la source
Vraiment facile à faire, pourquoi se réfère à un code complexe. essayez-le.Travail
Prenez une vue sur imageview exactement la taille de vue d'image. par défaut alpha pour l'ensemble de vues 0.
la source
Traduction Swift:
la source