2015-11-07 59 views
0

我試圖在自定義UIView中初始化MPMoviePlayerController。我確實聽到了聲音,但沒有看到。我認爲初始化視圖有些問題。我試圖通過在ViewController中實現,然後它確實起作用。MPMoviePlayerController在自定義UIView中不可見

這裏我的代碼:

import UIKit 
import MediaPlayer 

class CustomView: UIView { 

var sponsor: Sponsors! 

var videoContainer = UIView() 
var videoPlayer = MPMoviePlayerController() 

override init(frame: CGRect) { 
    super.init(frame: frame) 

    //Init 
    layer.cornerRadius = 3.0 
    backgroundColor = UIColor.whiteColor() 

    //VideoContainer 
    videoContainer.backgroundColor = UIColor.blackColor() 

    //Adding the views 
    addSubview(videoContainer) 
    videoContainer.addSubview(videoPlayer.view)   
} 

//MARK: InitCoder 
required init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder)! 
} 

//MARK: AddDataToView 
func addDataToView(sponsor: Sponsors) { 

    //VideoPlayerx 
    let path = NSBundle.mainBundle().pathForResource("movie5", ofType:"mov") 
    let url = NSURL.fileURLWithPath(path!) 
    videoPlayer = MPMoviePlayerController(contentURL: url) 
    videoPlayer.prepareToPlay() 
} 

//MARK: LayoutSubViews 
override func layoutSubviews() { 
    super.layoutSubviews()   

    //VideoContainer 
    videoContainer.frame = CGRectMake(8, 8, frame.size.width - 16, 219) 

    //Video 
    videoPlayer.view.frame = CGRectMake(8, 8, frame.size.width - 16, 219) 
    videoPlayer.scalingMode = .AspectFill 

回答

3

您需要設置框架和後添加子視圖創建videoPlayer對象。在addDataToView中,您再次初始化videoPlayer,以便清除之前的每個設置。

+1

偉大的,簡單的愚蠢的錯誤! :d – SwingerDinger