我试图通过嵌入一个单独的 View Controller 来完全通过 Storyboard设置一个 AVPlayerViewController。
步骤:
- 在 Xcode 中创建单 View 应用程序。
- 在导航 Controller 中嵌入 VC。
- 在底部添加工具栏。(固定到 superView(Leading、Trailing、Bottom Layout Guide、Height(44))。
- 在父 View Controller 中添加容器 View 。(固定到 superView(前导、尾随)、顶部布局指南、工具栏顶部)。
- 删除容器 View 附带的默认 View Controller 。
- 从对象库中拖动 AV Player View Controller 对象。
- 将 Container View 的 embed segue 连接到 AV Player View Controller。
未添加代码。
这是我的 Storyboard的样子:
查看层次结构:
一切正常: 但问题是: 一旦我运行它,我就会在调试器中收到这些警告:
2015-09-30 12:58:35.904 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f932592bc70 H:|-(14)-[UILabel:0x7f9325925590'Hi-Speed Scrubbing'] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592bcf0 H:[UILabel:0x7f9325925590'Hi-Speed Scrubbing']-(14)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f932592bcf0 H:[UILabel:0x7f9325925590'Hi-Speed Scrubbing']-(14)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.905 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f932592bdd0 H:|-(14)-[UILabel:0x7f9325929bb0'Slide your finger up to a...'] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592be50 H:[UILabel:0x7f9325929bb0'Slide your finger up to a...']-(14)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f932592be50 H:[UILabel:0x7f9325929bb0'Slide your finger up to a...']-(14)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.906 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7f932592b5e0 V:|-(>=0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b660 V:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592af50 V:[UIView:0x7f932585e830(44)]>",
"<NSLayoutConstraint:0x7f9325952c30 'UIView-Encapsulated-Layout-Height' V:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f932592b660 V:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.907 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR) (Names: '|':UIView:0x7f932585fbc0 )>",
"<NSLayoutConstraint:0x7f9325829f90 H:[AVButton:0x7f93258609b0]-(15)-[UILabel:0x7f932347dc20'--:--'](LTR)>",
"<NSLayoutConstraint:0x7f9325839550 H:[UILabel:0x7f932347dc20'--:--']-(12)-[AVScrubber:0x7f93234a4350](LTR)>",
"<NSLayoutConstraint:0x7f932585a2f0 AVScrubber:0x7f93234a4350.right == UILabel:0x7f932583a470'--:--'.left - 12>",
"<NSLayoutConstraint:0x7f932580b390 UILabel:0x7f932583a470'--:--'.right == AVButton:0x7f932585e480.left - 15>",
"<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
"<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
"<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9325829f90 H:[AVButton:0x7f93258609b0]-(15)-[UILabel:0x7f932347dc20'--:--'](LTR)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.909 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR) (Names: '|':UIView:0x7f932585fbc0 )>",
"<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
"<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
"<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
"<NSLayoutConstraint:0x7f9325859740 H:[AVButton:0x7f93258609b0]-(>=15)-[UILabel:0x7f93234e53f0'Live Broadcast'](LTR)>",
"<NSLayoutConstraint:0x7f932583bea0 UILabel:0x7f93234e53f0'Live Broadcast'.right <= AVButton:0x7f932585e480.left - 15>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9325859740 H:[AVButton:0x7f93258609b0]-(>=15)-[UILabel:0x7f93234e53f0'Live Broadcast'](LTR)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.910 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f9323520650 H:|-(0)-[UIActivityIndicatorView:0x7f93234e6ee0] (Names: '|':UIView:0x7f93234e6120 )>",
"<NSLayoutConstraint:0x7f93235206a0 H:[UIActivityIndicatorView:0x7f93234e6ee0]-(10)-[UILabel:0x7f93235203b0'Loading\U2026']>",
"<NSLayoutConstraint:0x7f9323520740 H:[UILabel:0x7f93235203b0'Loading\U2026']-(0)-| (Names: '|':UIView:0x7f93234e6120 )>",
"<NSLayoutConstraint:0x7f9323521f90 H:|-(>=0)-[UIView:0x7f93234e6120] (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
"<NSLayoutConstraint:0x7f9323510da0 UIView:0x7f93234e6120.centerX == AVLoadingIndicatorView:0x7f93234e5fb0.centerX>",
"<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR) (Names: '|':UIView:0x7f932585fbc0 )>",
"<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
"<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
"<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
"<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
"<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f93235206a0 H:[UIActivityIndicatorView:0x7f93234e6ee0]-(10)-[UILabel:0x7f93235203b0'Loading…']>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.912 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f9323521f90 H:|-(>=0)-[UIView:0x7f93234e6120] (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
"<NSLayoutConstraint:0x7f9323510da0 UIView:0x7f93234e6120.centerX == AVLoadingIndicatorView:0x7f93234e5fb0.centerX>",
"<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR) (Names: '|':UIView:0x7f932585fbc0 )>",
"<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
"<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
"<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
"<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
"<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9323510da0 UIView:0x7f93234e6120.centerX == AVLoadingIndicatorView:0x7f93234e5fb0.centerX>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.912 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f9323521f90 H:|-(>=0)-[UIView:0x7f93234e6120] (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
"<NSLayoutConstraint:0x7f9323510d10 H:[UIView:0x7f93234e6120]-(>=0)-| (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>",
"<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR) (Names: '|':UIView:0x7f932585fbc0 )>",
"<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
"<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
"<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
"<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
"<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f9323510d10 H:[UIView:0x7f93234e6120]-(>=0)-| (Names: '|':AVLoadingIndicatorView:0x7f93234e5fb0 )>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
2015-09-30 12:58:35.913 AVPlayerTest[9352:446772] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x7f93259513b0 h=-&- v=-&- _UIBackdropContentView:0x7f9325860000.width == _UIBackdropView:0x7f932585e990.width>",
"<NSLayoutConstraint:0x7f932592ba00 H:|-(0)-[UIView:0x7f932585fbc0] (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592ba80 H:[UIView:0x7f932585fbc0]-(0)-| (Names: '|':_UIBackdropContentView:0x7f9325860000 )>",
"<NSLayoutConstraint:0x7f932592b770 H:|-(0)-[_UIBackdropView:0x7f932585e990] (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b7f0 H:[_UIBackdropView:0x7f932585e990]-(0)-| (Names: '|':UIView:0x7f932585e830 )>",
"<NSLayoutConstraint:0x7f932592b450 H:|-(0)-[UIView:0x7f932585e830] (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932592b4d0 H:[UIView:0x7f932585e830]-(0)-| (Names: '|':AVAlphaUpdatingView:0x7f932585e310 )>",
"<NSLayoutConstraint:0x7f932582a040 H:|-(14)-[AVButton:0x7f93258609b0](LTR) (Names: '|':UIView:0x7f932585fbc0 )>",
"<NSLayoutConstraint:0x7f932586f490 AVButton:0x7f932585e480.right == AVButton:0x7f93234d1790.left - 10>",
"<NSLayoutConstraint:0x7f932580b340 AVButton:0x7f93234d1790.right == AVButton:0x7f93234d6540.left - 10>",
"<NSLayoutConstraint:0x7f932584c870 AVButton:0x7f93234d6540.right == UIView:0x7f932585fbc0.right - 14>",
"<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>",
"<NSLayoutConstraint:0x7f932583bc10 AVLoadingIndicatorView:0x7f93234e5fb0.right <= AVButton:0x7f932585e480.left - 15>",
"<NSLayoutConstraint:0x7f932594aa10 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x7f932585e310(0)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7f932583bbc0 H:[AVButton:0x7f93258609b0]-(>=15)-[AVLoadingIndicatorView:0x7f93234e5fb0](LTR)>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKit/UIView.h> may also be helpful.
很抱歉日志很长,但是所有的日志都会同时出现,所以包括它。 我错过了什么?自动布局工作得很好。甚至轮换。为什么我会看到这些警告?
已添加 Sample Project
附言:使用 Xcode 7.0 版
更新
取消选中属性检查器中 AVPlayerViewController
上的 Shows Playback Controls
以某种方式修复了它,我没有看到任何警告。但我需要控制。看起来越来越像一个错误。
最佳答案
其实我觉得是苹果方面的bug。
我找到了一个解决方法:在设置 AVPlayerViewController.player 后将 showsPlaybackControls 设置为 YES。
我用以下几行修改了您的示例,并且不再出现约束错误:
@interface ViewController ()
@property(weak, nonatomic) AVPlayerViewController * playerViewController;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp4"];
NSURL *url = [[NSURL alloc] initFileURLWithPath: path];
AVPlayer * player = [AVPlayer playerWithURL:url];
self.playerViewController.player = player;
self.playerViewController.showsPlaybackControls = YES;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"AVPlayerSegue"]) {
self.playerViewController = segue.destinationViewController;
}
}
@end
请注意,文件 test.mp4
已添加到项目中。
关于ios - 无法同时满足 Storyboard中嵌入的 AVPlayerViewController 的约束警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32860362/