iOS 9 UIWebview嵌入式视频全屏播放导致约束错误

时间:2015-09-24 15:19:53

标签: ios iphone swift uiwebview html5-video

刚刚更新到Xcode 7和iOS 9 SDK,发现在UIWebview中播放HTML 5视频时出现问题。代码非常简单,只需在UIWebview中加载HTML代码并播放即可。 HTML代码包括用于播放捆绑中的视频文件的标签。在iPhone上测试时,视频可以在全屏模式下正常播放(默认情况下),但Xcode控制台会显示一长串错误消息:

  

UIWebviewVideoTest [22503:904174]无法同时满足约束。       可能至少以下列表中的一个约束是您不想要的约束。试试这个:(1)看看每个约束,并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果您正在查看您不了解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档translatesAutoresizingMaskIntoConstraints)

     

 "<NSAutoresizingMaskLayoutConstraint:0x7f8df9da8ed0 h=-&- v=-&- _UIBackdropContentView:0x7f8dfc034370.width == _UIBackdropView:0x7f8df9c4ec70.width>",
"<NSLayoutConstraint:0x7f8df9d974e0 H:|-(14)-[UILabel:0x7f8df9c45b40'Slide your finger down to...']   (Names: '|':_UIBackdropContentView:0x7f8dfc034370 )>",
"<NSLayoutConstraint:0x7f8df9d96900 H:[UILabel:0x7f8df9c45b40'Slide your finger down to...']-(14)-|   (Names: '|':_UIBackdropContentView:0x7f8dfc034370 )>",
"<NSLayoutConstraint:0x7f8df9d835c0 H:|-(0)-[_UIBackdropView:0x7f8df9c4ec70]   (Names: '|':UIView:0x7f8df9c52bf0 )>",
"<NSLayoutConstraint:0x7f8df9d83610 H:[_UIBackdropView:0x7f8df9c4ec70]-(0)-|   (Names: '|':UIView:0x7f8df9c52bf0 )>",
"<NSLayoutConstraint:0x7f8df9d83910 H:|-(0)-[UIView:0x7f8df9c52bf0]   (Names: '|':AVAlphaUpdatingView:0x7f8df9c44190 )>",
"<NSLayoutConstraint:0x7f8df9d83960 H:[UIView:0x7f8df9c52bf0]-(0)-|   (Names: '|':AVAlphaUpdatingView:0x7f8df9c44190 )>",
"<NSLayoutConstraint:0x7f8df9daf950 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f8df9c44190(0)]>"
  

     

将通过违反约束来尝试恢复

<NSLayoutConstraint:0x7f8df9d96900 H:[UILabel:0x7f8df9c45b40'Slide your finger down to...']-(14)-|   (Names: '|':_UIBackdropContentView:0x7f8dfc034370 )>
  

在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点,以便在调试器中捕获它。   UIView中列出的UIVonstraintBasedLayoutDebugging类别中的方法也可能有所帮助。

当我在iPad上测试时,内联播放模式正常,但在全屏模式下播放视频时,控制台中会显示类似的错误。似乎该错误与UIWebview中的全屏视频播放相关联。有谁知道为什么会生成此错误消息以及如何避免它?谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个Apple bug。

错误已在更新的iOS版本中修复。

如果仍然遇到问题-向Apple提交错误报告。