2016-12-05 2 views
0

Ich möchte, dass die untere Rahmenhöhe viel höher als der Rest der Ränder ist, damit das Bild wie ein Polaroidbild aussieht. Gerade jetzt hat mein Code a eine Standard-Rahmenlänge für alle 4 Seiten. Ich möchte nicht, dass das Bild beschnitten wird. Ich möchte nur den unteren Rand in einer größeren Höhe. Unten ist mein Code. Und hier ist eine Zusammenfassung der Code-Ergebnisse. PiceSo erstellen Sie einen benutzerdefinierten Rahmen für eine Uimmageview in swift

import UIKit 

class x1ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, UITextFieldDelegate { 

@IBOutlet weak var imageDisplay: UIImageView! 
    var screenView: UIImageView! 



@IBAction func camera(_ sender: AnyObject) { 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){ 
     let imagePicker = UIImagePickerController() 
     imagePicker.delegate = self 




     imageDisplay.layer.borderColor = UIColor(red: 0, green: 1.0, blue: 0, alpha: 1).cgColor 
     imageDisplay.layer.cornerRadius = 1 
     imageDisplay.contentMode = .scaleAspectFit 
     imageDisplay.layer.borderWidth = 1 


     imagePicker.sourceType = UIImagePickerControllerSourceType.camera; 
     imagePicker.allowsEditing = false 
     self.present(imagePicker, animated: true, completion: nil)}} 

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

    screenView.frame = CGRect(x:0, y: 0, width: self.view.frame.width, height: self.view.frame.height) 




    let text = "#HAPPY" 
    let label = UILabel(frame: CGRect(x: 125, y: 700, width: self.view.frame.width, height: 300)) 
    label.font = UIFont(name: label.font.fontName, size: 122) 

    label.textColor = UIColor.blue 
    label.alpha = 1.0 
    label.text = text 


    self.view.addSubview(screenView) 
    self.view.addSubview(label) 


    UIGraphicsBeginImageContext(self.imageDisplay.frame.size) 
    self.view.drawHierarchy(in: self.view.frame, afterScreenUpdates: true) 

} 
@IBAction func save(_ sender: AnyObject) { 

    let alert = UIAlertController(title: "Image Saved", message: "Image is in photo gallery", preferredStyle: .alert) 
    let okay = UIAlertAction(title: "OK", style: .default, handler: nil) 
    alert.addAction(okay) 
    present(alert, animated: true, completion: nil) 



    let photo = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    UIImageWriteToSavedPhotosAlbum(photo!, nil, nil, nil) 

} 


} 
+1

Sie müssen eine weitere 'UIView' als Unteransicht Ihrer' UIImageView' hinzufügen und sie mit ihrer 'frame' -Eigenschaft unten platzieren. – sdasdadas

+0

Dies ist ein gutes Beispiel zum Hinzufügen von Rahmen zum Anzeigen. http://stackoverflow.com/a/30519213/2618600 – Nitya

Antwort

0

können Sie in einer Ansicht ziehen durch Überschreiben der rectdraw Methode verwendet und es dann über dem Bild-Ansicht. hier die Apple-Dokumentation: https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/BezierPaths/BezierPaths.html

Es gibt ein Werkzeug, das Sie verwenden können, um den Code zu machen, indem Sie Punkte mit der Maus ziehen, die nützlich sein können. https://www.paintcodeapp.com/ können Sie es kostenlos ausprobieren.

Verwandte Themen