0

Mein Code hier zeigt eine rote Linie am oberen Rand des imagePicker, wenn Sie ein Foto machen. Ich möchte das gleiche tun, aber ein Bild in der Mitte der roten Linie hinzufügen. Siehe Bild. Ich habe das Wort Bild in einer gelben Box als Beispiel für das eingefügt, was ich zu kodieren versuche.So fügen Sie ein Bild zur Kameraüberlagerungsansicht hinzu (swift4)

@IBAction func takePhoto(_ sender: UIButton) { 
    imagePicker = UIImagePickerController() 
    imagePicker.delegate = self 
    imagePicker.sourceType = .camera 
    present(imagePicker, animated: true, completion: nil) 
    let mainView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height-150)) 
    let blockView = UIView.init(frame: CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: 150)) 
    blockView.backgroundColor = UIColor.red 
    mainView.addSubview(blockView) 
    imagePicker.cameraOverlayView = mainView 
} 

enter image description here

+1

Machen Sie aus Ihrem 'blockView' ein' UIImageView'? –

+0

sagen Sie einfach ändern Sie uiview zu uiimageview? –

Antwort

0

Just do:

let frame    = CGRect.init(x: 0, y: 0, width: self.view.frame.size.width, height: 150) 
let blockView   = UIImageView.init(frame: frame) 
blockView.contentMode = .scaleAspectFit 
blockView.image  = UIImage(named: "NameOfYourImage") // Just an example. 

UIImageView See.

Die obige frame muss natürlich angepasst werden, damit die oberen und unteren Ränder in Ihrem Screenshot angezeigt werden.

+0

Wie würde ich das Foto in der Mitte machen. Egal ob das Gerät im Hoch- oder Querformat ist. Im Moment bleibt es immer im Zentrum für den Querformatmodus, aber nicht für das Hochformat. Vielen Dank. –

+0

Das ist ein ganz anderes Thema, aber Sie sollten Auto-Layout (oder Autoresizing-Masken) verwenden. Es gibt viele Tutorials. –

Verwandte Themen