Type 'VideoView'未遵循UIViewRepresentable协议问题求助
解决Type 'VideoView' does not conform to protocol 'UIViewRepresentable'错误
问题出在makeUIView方法的返回类型上:UIViewRepresentable协议要求该方法返回明确的具体UIView子类类型,而你使用了不透明返回类型some WKWebView,导致编译器无法确认类型是否符合协议约束。
只需修改makeUIView的返回类型为具体的WKWebView即可解决问题,修复后的完整代码如下:
import SwiftUI import WebKit struct VideoView: UIViewRepresentable { let videoID: String func makeUIView(context: Context) -> WKWebView { return WKWebView() } func updateUIView(_ uiView: WKWebView, context: Context) { guard let youtubeURL = URL(string: "https://www.youtube.com/embed/\(videoID)") else {return} uiView.scrollView.isScrollEnabled = false uiView.load(URLRequest(url: youtubeURL)) } }
简单说明:协议定义中makeUIView的返回类型是关联类型UIViewType(必须继承自UIView),使用具体类型能让编译器明确匹配到这个关联类型,而不透明类型some会打破这种明确性,从而触发协议不兼容错误。
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

