Ios 快速摄影机覆盖视图

Ios 快速摄影机覆盖视图,ios,swift,xcode,Ios,Swift,Xcode,我是一个新手,我正在尝试制作一个简单的应用程序,让你拍一张照片,然后在相机上以较少的不透明度看到它。一切似乎都很好,但覆盖视图被放大了,我找不到原因。我应该怎么做才能使相机上的重叠视图显示整个照片?这是我的密码: import UIKit class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet var pickedIm

我是一个新手,我正在尝试制作一个简单的应用程序,让你拍一张照片,然后在相机上以较少的不透明度看到它。一切似乎都很好,但覆盖视图被放大了,我找不到原因。我应该怎么做才能使相机上的重叠视图显示整个照片?这是我的密码:

import UIKit

class ViewController: UIViewController, 
UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet var pickedImage: UIImageView!

var array = [UIImage]()
var temp = UIImage()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func photoLibrary(_ sender: UIButton) {
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary){
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary;
        imagePicker.allowsEditing = true
        self.present(imagePicker, animated: true,completion: nil)


    }
}
@IBAction func saveButton(_ sender: UIButton) {
    let imageData = UIImageJPEGRepresentation( pickedImage.image!, 0.5)
    let compressedJPEGImage = UIImage(data: imageData! )

    UIImageWriteToSavedPhotosAlbum(compressedJPEGImage!, nil, nil, nil)
    array.append(compressedJPEGImage!)


}
@IBAction func cameraButton(_ sender: UIButton) {

    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera)
    {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.camera
        ;

        imagePicker.allowsEditing = false

        self.present(imagePicker, animated: true,completion: nil)
        //-------------------------------------------------------------------
   //   let screenSize: CGRect = UIScreen.main.bounds

        let overlayView = UIImageView(frame: imagePicker.cameraOverlayView!.frame)
        let crosshairLabel = UIImageView()


        if array.count >= 1{

            var overlayViewInt = array.count - 1
            crosshairLabel.image = array[overlayViewInt]
        } else {
            crosshairLabel.image = UIImage(named: "camera")

        }

        overlayView.bounds = UIScreen.main.bounds


        crosshairLabel.alpha = 0.4
        crosshairLabel.translatesAutoresizingMaskIntoConstraints = false
         overlayView.addSubview(crosshairLabel)

        crosshairLabel.centerXAnchor.constraint(equalTo: overlayView.centerXAnchor).isActive = true
        crosshairLabel.centerYAnchor.constraint(equalTo: overlayView.centerYAnchor).isActive = true

        // To avoid blocking the underneath default camera controls
        overlayView.isUserInteractionEnabled = false

        imagePicker.cameraOverlayView = overlayView
        //-------------------------------------------------------------------

    }
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject: AnyObject]!) {
    pickedImage.image = image
    self.dismiss(animated: true, completion: nil) 
}

}

现在还不太清楚什么视图应该实际显示一个图像,但我假设它是“crosshairLabel”。您需要向其添加宽度和高度约束:

crosshairLabel.heightAnchor.constraint(equalTo: overlayView.heightAnchor, multiplier: 1.0).isActive = true
crosshairLabel.widthAnchor.constraint(equalTo: overlayView.widthAnchor, multiplier: 1.0).isActive = true