2017-09-09 11 views
1

私はユーザーがプロフィール画像を撮ることができる機能をアプリケーションに実装しようとしています。 AVFoundationを使用すると、ビデオプレビューレイヤーをフルスクリーンに簡単に出力できます。私はまた、プレビューレイヤフレームをイメージビューフレームに設定しようとしましたが、下の写真に示す結果が出ました。ビデオプレビューに合わせる方法画像ビューXcode Swift 3

if let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession){ 
     self.previewLayer = previewLayer 

     //this is for full screen output 
     //self.view.layer.addSublayer(self.previewLayer) 
     //self.previewLayer.frame = self.view.layer.frame 

     //this gives me the result in the photo 
     cameraOutputImageView.layer.addSublayer(self.previewLayer) 
     self.previewLayer.frame = cameraOutputImageView.layer.frame 

     captureSession.startRunning() 
     print("trying to run capture session") 

     let dataOutput = AVCaptureVideoDataOutput() 
     dataOutput.videoSettings = [(kCVPixelBufferPixelFormatTypeKey as NSString):NSNumber(value: kCVPixelFormatType_32BGRA)] 

     dataOutput.alwaysDiscardsLateVideoFrames = true 

     if captureSession.canAddOutput(dataOutput){ 
      captureSession.addOutput(dataOutput) 
     } 

     captureSession.commitConfiguration() 
    } 

はしかし、私は、ビデオフィードは、埋めるためのものだ画像ビューのサイズの正方形になりたいです。これは今見ているとおりです:enter image description here

ピンクのボックスは、画像でいっぱいにする必要があります。今のところは、すべてのサブビューをロードした後上部付近にカメラ出力が

答えて

1

はImageViewの境界あなたはカメラ機能を呼び出すことを確認する必要があり

self.previewLayer.frame = cameraOutputImageView.layer.bounds

にプレビュー層を設定してみてください左のことを表示します自動レイアウトの制約を使用している場合は、viewDidLayoutSubviewsが呼び出された後にのみuiimageのlayer.boundsが変更されるためです。

関連する問題