swift - 如何在 UIkit 中添加 SwiftUI 对象
问题描述
我已经使用 Hosting View Controller 连接了我的 swiftui 类以在故事板(UIkit)中使用 SwiftUI,但问题是我不想在另一个页面中使用它我想将 SwiftUI 变量(图形)添加到与我相同的页面使用 UIkit 创建。如何通过 SwiftUI 在 UIkit 中添加一些东西,是否有类似容器托管视图的东西?Container View 可以帮助您在 View 中添加视图,但您不能像编辑 Hosting View Controller 那样编辑它。请帮我一把。我在下图中展示了我想要 SwiftUI 的位置
解决方案
如果你想在 SwiftUI 中使用 UIKit,你可以使用UIViewControllerRepresentable(代表 UIKit 视图控制器的视图)。
如果你添加 UiViewControllerRepresentable 协议。你可以在 SwiftUI 中使用 UIViewController。
struct ViewControllerRepresentation: UIViewControllerRepresentable {
}
这是示例
final class RedLabel: UILabel {
override func awakeFromNib() {
super.awakeFromNib()
textColor = .red
}
}
struct RepresentableRedLabel: UIViewRepresentable {
var text: String
let redLabel = RedLabel()
func makeUIView(context: Context) -> UILabel {
redLabel
}
func updateUIView(_ uiView: UILabel, context: Context) {
redLabel.text = text
}
}
推荐阅读
- discord.js - 获取不和谐访问令牌[Discord.js]
- javascript - 当上下文状态改变时,React hooks 上下文组件不会重新渲染
- reduce - 使用reduce的内积的意外结果
- ios - 更新iOS后,所有使用该框架的应用程序都停止在设备上运行,而是在模拟器上运行
- json - 试图根据 jq 查找日期
- javascript - 构建一个烧瓶 + heroku 应用程序,用于静态资产的 s3 托管(js 和图像当前未加载)
- c++ - 解释 for (char c : str) 是做什么的?
- java - 如何将 EBNF 重复实现为 Java 代码?
- php - 产品 (........ ) 结束了。PrestaShop 1.7
- swift - 为什么 SomeStruct() is AnyObject 返回 true?