2015-10-22 27 views
8

Projemde bir ViewController oluşturdum ve videoları göstermek için "AVPlayerViewController" olarak bir sınıf oluşturdum.AVPlayerViewController - Otomatik Düzen Yok - Sınırlamaları eş zamanlı olarak karşılayamıyor.

Kod çalışıyor ve ben videoları görebiliyorum, ancak konsolda bazı kısıtlamalar uyarıları alıyorum.

Projem AutoLayout olmadan çalışıyor ve AutoResizing kullanıyorum. Ben kodu denedim:

self.view.translatesAutoresizingMaskIntoConstraints = false 

ancak uyarılar uzağa gitmiyor ve ekranın üst tarafına video oynatıcı hareket kontrolleri.

There uyarılar bulunmaktadır:

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:0x1475c4540 h=-&- v=-&- _UIBackdropContentView:0x147443880.width == _UIBackdropView:0x147436a30.width>", 
    "<NSLayoutConstraint:0x1475b38f0 H:|-(0)-[_UIBackdropView:0x147436a30] (Names: '|':UIView:0x1474368d0)>", 
    "<NSLayoutConstraint:0x1475b3980 H:[_UIBackdropView:0x147436a30]-(0)-| (Names: '|':UIView:0x1474368d0)>", 
    "<NSLayoutConstraint:0x1475b3650 H:|-(0)-[UIView:0x1474368d0] (Names: '|':AVAlphaUpdatingView:0x14744db30)>", 
    "<NSLayoutConstraint:0x1475b36d0 H:[UIView:0x1474368d0]-(0)-| (Names: '|':AVAlphaUpdatingView:0x14744db30)>", 
    "<NSLayoutConstraint:0x1475c7670 H:|-(15)-[UIView:0x1474435c0](LTR) (Names: '|':_UIBackdropContentView:0x147443880)>", 
    "<NSLayoutConstraint:0x1475c54d0 UIView:0x147443b40.right == _UIBackdropContentView:0x147443880.right>", 
    "<NSLayoutConstraint:0x1475c7a40 UIView:0x1474435c0.right == UIView:0x147443b40.left - 10>", 
    "<NSLayoutConstraint:0x1475c4da0 'UIView-Encapsulated-Layout-Width' H:[AVAlphaUpdatingView:0x14744db30(0)]>" 
) 

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x1475b3980 H:[_UIBackdropView:0x147436a30]-(0)-| (Names: '|':UIView:0x1474368d0)> 

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. 

Herhangi Fikir ne yapmalı?

cevap

5

Bu cevaba göre Unable to simultaneously satisfy constraints Warnings with AVPlayerViewController embedded in storyboard çözüm, PlayerController'da showPlayBackControls kapalı olarak ayarlanmış gibi görünüyor ve daha sonra görüntüye ekliyor.

Bir AVPlayer öğeniz olduğunda, oynatıcı denetimlerini tekrar gösterebilirsiniz (bunlara ihtiyacınız olduğunu varsayarak).

Oyuncu kontrol kısıtlamalarının uygun şekilde karşılanması için geçerli bir AVPlayer öğesinin gerekli olduğundan şüpheleniyorum.

Bu aynı sorunu yaşadım ve bu değişikliği yaparak düzeltmeyi başardım. İyi şanslar!

0

Kaçınılmaz olarak, ne yaparsınız ana görünümünüz altında ikinci bir görünüm oluşturmak ve daha sonra oynatıcı görünümünüzü bunun için bir alt görünüm olarak eklemektir.

Bu sorun, bir ay önce çözmek için bütün bir günümü aldı ve işte bu şekilde çözüldü. Yine de, kısıtlamaları otomatik olarak yeniden boyutlandıran herhangi bir kodu kaldırmanız gerekir.

+0

@Jamesh Bir suvView eklemeyi denedim ve bunun içinde playerViewView ekledim ama hata aynı görünüyor. Ben xcode 8.2 ve ios 10 kullanıyorum herhangi bir yardım takdir edilecektir. –

+0

Örnek kod göndererek yaptığınızı kanıtlamanız gerekir. –

0

programlı şekilde görünümü denetleyicisi için görünümü oluşturuyorsanız, bir çocuk görünümü denetleyicisi ve loadView bir subview onun bakış() yerine viewDidLoad yöntemi() olarak AVPlayerViewController ekleyin. Oynatma kontrollerini saklamaya gerek yok.