This is quite a neat effect that you can add to any of your views on your app. Essentially as you move your phone, the accelerometers inside predict the orientation changes of the phone and provide this movement to your view. It is a great trick to help bring attention to prominent views or images in your app. By creating a small extension on the UIView class you will be able to add this effect to any view with one line of code.
Tutorial
First of all, you want to set up a single view application template. Then create a fixed size UIView to contain your main UIImageView. It is important that the clip to bounds attribute for the UIView is set to true and the UIImageView is constrained to be larger than the UIView.
Here is the extension that you will need to add to your project that you can use on any UIView or subclass of UIView.
https://gist.github.com/rtking1993/e0692e99f0dde15b3cbb32eee0ef8ca0
Then we want to connect our UIImageView to an outlet and implement the motion effect in the viewDidLoad method.
https://gist.github.com/rtking1993/2e31ae78464b0aa2a8b54f26c9cda06c
Adjusting the intensity will change the severity of the effect, reducing the intensity will make the effect less pronounced while increasing the intensity will raise the sensitivity. Be careful of setting the intensity too high, as it could leave your users feeling a bit nauseous!
Here is the full source code for the project:
https://github.com/rtking1993/UIImagePickerViewController
Leave a Reply