2016-12-05 10 views
0

Я хочу, чтобы высота нижней границы была намного выше, чем остальные границы, чтобы изображение выглядело как изображение поляроида. Прямо сейчас мой код a имеет стандартную длину границы для всех четырех сторон. Я не хочу, чтобы изображение было обрезано. Мне просто нужна нижняя граница на большей высоте. Ниже мой код. И вот язва результатов кода. PiceКак сделать пользовательскую границу для uimmageview в 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

Вам нужно добавить еще один 'UIView' в качестве подсмотра вашего' UIImageView' и поместить его внизу, используя его свойство 'frame'. – sdasdadas

+0

Это хороший пример для добавления границы для просмотра. http://stackoverflow.com/a/30519213/2618600 – Nitya

ответ

0

Вы можете нарисовать в представлении, используя при помощи переопределения метода rectdraw, а затем добавить его выше точки зрения изображения. здесь документация на яблоко: https://developer.apple.com/library/content/documentation/2DDrawing/Conceptual/DrawingPrintingiOS/BezierPaths/BezierPaths.html

есть инструмент, который вы можете использовать, чтобы сделать код rectdraw, перетаскивая точки с помощью мыши, которые могут быть полезны. https://www.paintcodeapp.com/ вы можете попробовать.