Swift version: 5.10
iOS has a built-in way to transition between views, and you can use this to produce 3D flips in just a few lines of code. Here's a basic example that flips between two views:
@objc func flip() {
let transitionOptions: UIView.AnimationOptions = [.transitionFlipFromRight, .showHideTransitionViews]
UIView.transition(with: firstView, duration: 1.0, options: transitionOptions, animations: {
self.firstView.isHidden = true
})
UIView.transition(with: secondView, duration: 1.0, options: transitionOptions, animations: {
self.secondView.isHidden = false
})
}
Here's a basic test harness you can use to see that method in action:
var firstView: UIView!
var secondView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
firstView = UIView(frame: CGRect(x: 32, y: 32, width: 128, height: 128))
secondView = UIView(frame: CGRect(x: 32, y: 32, width: 128, height: 128))
firstView.backgroundColor = UIColor.red
secondView.backgroundColor = UIColor.blue
secondView.isHidden = true
view.addSubview(firstView)
view.addSubview(secondView)
perform(#selector(flip), with: nil, afterDelay: 2)
}
Try experimenting with the different values of UIView.AnimationOptions
to see what other animations are available.
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 2.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.