Coordinator
什么是 Coordinator?
如何使用 Coordinator?
struct WAHWDMP4PlayerView: UIViewRepresentable {
typealias UIViewType = WAHWDMP4PlayerOriginView
@Binding var sources: [String]
// 创建 Coordinator 实例
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
// 创建并配置 UIKit 视图
func makeUIView(context: Context) -> WAHWDMP4PlayerOriginView {
let playerView = WAHWDMP4PlayerOriginView()
return playerView
}
// 更新 UIKit 视图
func updateUIView(_ uiView: WAHWDMP4PlayerOriginView, context: Context) {
if !sources.isEmpty {
print("lt -- update source with \(sources.count) items") // 调试信息
context.coordinator.updateSources(in: uiView, with: sources)
}
}
// Coordinator 类定义
class Coordinator {
private var parent: WAHWDMP4PlayerView
init(_ parent: WAHWDMP4PlayerView) {
self.parent = parent
}
// 在这里处理数据更新或其他逻辑
func updateSources(in uiView: WAHWDMP4PlayerOriginView, with sources: [String]) {
uiView.updateSources(sources: sources)
}
// 如果需要处理事件,可以添加相应的方法
// 例如:
// @objc func handleTap(sender: UITapGestureRecognizer) {
// // 处理点击事件
// }
}
}Coordinator 的优势
使用场景
Last updated