В MacOS Mojave помимо использования PlaygroundPage.current.liveView
вы можете нарисовать ваш SwiftUI-представление в изображение. Таким образом, вы можете иметь несколько «живых представлений» на вашей детской площадке.
Проверьте эту статью: https://ericasadun.com/2019/06/20/swiftui-render-your-mojave-swiftui-views-on-the-fly/
Пример кода размещен здесь
https://gist.github.com/erica/fb5005f625207e108836175ff201d8f2
renderedImage
код утилиты (авторское право Эрики Садун!)
import PlaygroundSupport
import SwiftUI
extension UIView {
var renderedImage: UIImage {
let image = UIGraphicsImageRenderer(size: self.bounds.size).image { context in
UIColor.lightGray.set(); UIRectFill(bounds)
context.cgContext.setAlpha(0.75)
self.layer.render(in: context.cgContext)
}
return image
}
}
extension View {
var renderedImage: UIImage {
let window = UIWindow(frame: CGRect(origin: .zero, size: CGSize(width: 320, height: 160)))
let hosting = UIHostingController(rootView: self)
hosting.view.frame = window.frame
window.rootViewController = hosting
window.makeKey()
return hosting.view.renderedImage
}
}