edit 05/06/19: Added information about UIHostingController as suggested by @Departamento B in his answer. Credits go to him!
在UIKit中使用SwiftUI
通过将SwiftUI
View
包装成UIHostingController
,可以在现有UIKit
环境中使用SwiftUI
个组件,如下所示:
let swiftUIView = SomeSwiftUIView() // swiftUIView is View
let viewCtrl = UIHostingController(rootView: swiftUIView)
它也可以覆盖UIHostingController
,并根据需要定制,例如,如果preferredStatusBarStyle
不能按预期通过SwiftUI
工作,则手动设置preferredStatusBarStyle
.
UIHostingController
是here.
在SwiftUI中使用UIKit
如果现有的UIKit
视图应该在SwiftUI
环境中使用,那么UIViewRepresentable
协议就是有帮助的!这篇教程可以在Apple this中看到,也可以在Apple here中看到.
Compatibility
请注意,您不能在iOS版本上使用SwiftUI
<;iOS 13,as SwiftUI
仅在iOS 13及以上版本上可用.更多信息请参见this篇帖子.
如果你想在目标低于iOS 13的项目中使用SwiftUI
,你需要用@available(iOS 13.0.0, *)
属性标记你的SwiftUI
struct .