Ios 如何展开相机视图以占据整个屏幕(如snapchat)?
我正在尝试制作一个应用程序,它在一个占据整个屏幕的摄像头视图上打开,并且有覆盖摄像头视图的按钮。然而,我的代码现在只提供了占据屏幕中间部分的视图。如何调整以下代码以占据整个视图Ios 如何展开相机视图以占据整个屏幕(如snapchat)?,ios,swift,iphone,xcode,camera,Ios,Swift,Iphone,Xcode,Camera,我正在尝试制作一个应用程序,它在一个占据整个屏幕的摄像头视图上打开,并且有覆盖摄像头视图的按钮。然而,我的代码现在只提供了占据屏幕中间部分的视图。如何调整以下代码以占据整个视图 import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var photoPreviewImageView: UIImageView! var session: AVCaptur
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var photoPreviewImageView: UIImageView!
var session: AVCaptureSession?
var stillImageOutput: AVCaptureStillImageOutput?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
override func viewDidLoad() {
super.viewDidLoad()
session = AVCaptureSession()
session!.sessionPreset = AVCaptureSession.Preset.photo
let backCamera = AVCaptureDevice.default(for: AVMediaType.video)
var error: NSError?
var input: AVCaptureDeviceInput!
do {
input = try AVCaptureDeviceInput(device: backCamera!)
} catch let error1 as NSError {
error = error1
input = nil
print(error!.localizedDescription)
}
if error == nil && session!.canAddInput(input) {
session!.addInput(input)
stillImageOutput = AVCaptureStillImageOutput()
stillImageOutput?.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
if session!.canAddOutput(stillImageOutput!) {
session!.addOutput(stillImageOutput!)
videoPreviewLayer = AVCaptureVideoPreviewLayer(session: session!)
videoPreviewLayer!.videoGravity = AVLayerVideoGravity.resizeAspect
videoPreviewLayer!.connection?.videoOrientation = AVCaptureVideoOrientation.portrait
photoPreviewImageView.layer.addSublayer(videoPreviewLayer!)
session!.startRunning()
}
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
videoPreviewLayer!.frame = photoPreviewImageView.bounds
}
}
而不是将预览层作为uiimage视图。将其设置为视图,并手动将其调整为整个视图控制器的大小 内部视图将出现在设置预览层框架的位置。更改代码 将边界设置为=self.view.bounds 编辑--- 更改从“纵横向拟合纵横向填充”设置的重力 编辑-- 尝试使用=self.view.frame.bounds设置帧 确保预览层的大小能够占据整个视图控制器 确保预览层和视频预览层设置为“纵横比填充” 你可以试试这个 self.view.addsubview(videopreviewlayer) 或者将其设置为适当的层
如果这些都不起作用,请共享您的界面生成器(故事板),也许您的视图继承人权限有问题不要使用UIImageView。将videoPreviewLayer添加到您的ViewController视图。我将如何实现这一点?我对Swift和Xcode@LeoDabusThis还是新手,没有任何改变,你还有其他建议吗?哦!你设定的重力改变了方向,我试过了,但还是没有改变,还有其他建议吗?我会接受任何我能得到的帮助。谢谢