SwiftUI 2.0 | Swift 5.4 | Xcode 12.4 | macOS Big Sur 11.4
iOS中有一种方法可以将SwiftUI视图渲染为UIImage,但在AppKit中不起作用,只能在UIKit中使用:
extension View {
func snapshot() -> UIImage {
let controller = UIHostingController(rootView: self)
let view = controller.view
let targetSize = controller.view.intrinsicContentSize
view?.bounds = CGRect(origin: .zero, size: targetSize)
view?.backgroundColor = .clear
let renderer = UIGraphicsImageRenderer(size: targetSize)
return renderer.image { _ in
view?.drawHierarchy(in: controller.view.bounds, afterScreenUpdates: true)
}
}
}
有没有解决方法可以在AppKit上运行? 方法UIGraphicsImageRenderer(size:)
在AppKit上无法工作,也没有相应的方法。