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 Join some of the App Store’s biggest apps—from brands like Mojo and Citizen to thriving indies. Test pricing, run paywall experiments, update locked features, and now, launch web checkout links straight from your app—all without updates. Superwall is your complete growth toolkit.
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.