Swift version: 5.10
You can render any UIView
into a UIImage
in just four lines of code, and that even handles drawing all the subviews automatically. Here's the code:
let renderer = UIGraphicsImageRenderer(size: view.bounds.size)
let image = renderer.image { ctx in
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
}
Helpfully, that code works equally well no matter what the view contains - if you're using UIKit, SpriteKit, Metal or whatever, it all works.
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 10.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.