You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:24:22