YouTubeembedded的video显示大小错误

我在UIWebView中embedded了一个YouTubevideo,以显示在我的应用程序中。

以下是代码:

func loadVideo(){ if let youtubeCode = exerciseYoutubeCode { guard !youtubeCode.isEmpty else { return } exerciseVideoWebView.isHidden = false exerciseVideoWebView.allowsInlineMediaPlayback = true exerciseVideoWebView.scrollView.isScrollEnabled = false exerciseVideoWebView.scrollView.bounces = false exerciseVideoWebView.loadHTMLString("<html><head><style>body{margin:0px}</style></head><body><iframe width=\"\(exerciseVideoWebView.frame.width)\" height=\"\(exerciseVideoWebView.frame.height)\" src=\"https://www.youtube.com/embed/\(youtubeCode)?&playsinline=1\" frameborder=\"0\" allowfullscreen></iframe></body></html>", baseURL: nil) } } 

问题是,embedded的video似乎并不尊重我传递给iframe的UIWebView的宽度和高度。 在模拟器中,video大约比UIWebView大15-25个像素。 我可以忍受这一点,但是在物理设备上运行时,它比UIWebView小15-25个像素,UIWebView的右侧和底侧都会显示白色的HTML页面。

UIWebView具有16:9的自动约束,与YouTube的video宽高比相匹配。

如果我把下面的脚本放到HTML中,我可以看到,videoiframe的宽度和高度与打印到UIWebView的控制台的高度和宽度完全匹配:

 <script>setTimeout(function(){ alert(document.getElementsByTagName('iframe')[0].offsetWidth + ' ' + document.getElementsByTagName('iframe')[0].offsetHeight)},10000) </script> 

很显然,如果HTML认为其尺寸与UIWebView相同,就会出现某种缩放,但我无法弄清楚如何解决这个问题。