Swift version: 5.10
Parallax effects have been standard since iOS 7.0, and the UIInterpolatingMotionEffect
class makes this easy by automatically smoothing accelerometer input so your views can adjust to tilt data.
If you want to have a UIView
respond to tilting, add this function to your code then call it on any view you want:
func addParallaxToView(vw: UIView) {
let amount = 100
let horizontal = UIInterpolatingMotionEffect(keyPath: "center.x", type: .tiltAlongHorizontalAxis)
horizontal.minimumRelativeValue = -amount
horizontal.maximumRelativeValue = amount
let vertical = UIInterpolatingMotionEffect(keyPath: "center.y", type: .tiltAlongVerticalAxis)
vertical.minimumRelativeValue = -amount
vertical.maximumRelativeValue = amount
let group = UIMotionEffectGroup()
group.motionEffects = [horizontal, vertical]
vw.addMotionEffect(group)
}
SPONSORED Get accurate app localizations in minutes using AI. Choose your languages & receive translations for 40+ markets!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 7.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.