ios9 UIWebview内嵌视频全屏播放导致约束错误



刚刚更新到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 )>

在uiviewalertforunsatisableconstraints处设置一个符号断点,以便在调试器中捕获此错误。在UIConstraintBasedLayoutDebugging类别中列出的方法也可能是有帮助的。

当我在iPad上测试时,内联播放模式是OK的,但在全屏模式下播放视频时,控制台显示了类似的错误。似乎错误与在UIWebview中的全屏视频播放有关。有人知道为什么产生这个错误消息以及如何避免它吗?谢谢!

这是苹果的bug。

修复新iOS版本的错误。

如果你仍然遇到这个问题-向苹果公司提交错误报告。

最新更新