2017-12-12 2 views
0

Ich benutze UITextField.
Ich gebe Zeichen über die Tastatur in UITextField ein.
Wenn ich auf die Return-Taste auf der Tastatur tippe, werde ich Sätze in UILabel anzeigen.
Ich möchte von UILabel zu Bild konvertieren, nachdem ich die Zeichen in UILabel anzeigen.
Allerdings kann ich nicht von UILabel zu Bild konvertieren.
Gibt es einen besseren Weg?
Ich weiß nicht, wie man UILabel in UIImage konvertiert. [Swift]

@IBOutlet var messageLabel: UILabel! 
@IBOutlet var messageField: UITextField! 

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
    messageLabel.text = messageField.text 

    //Here I would like to convert from UILabel to image. 
    //UILabel → image 

} 
+0

zuerst, was du meinst mit: "Ich zeige die Zeichen auf UITextField in UILabel." ? –

+0

Entschuldigung. Ich werde ein paar Sätze der Erklärung korrigieren. – ginger

+0

Was hat der Code in Ihrer Frage mit der Umwandlung eines Etiketts in ein Bild zu tun? – rmaddy

Antwort

1

Sie UIGraphicsBeginImageContextWithOptions können Sie ein Bild Kontext beginnen und dann können Sie UIView Methode func drawHierarchy(in rect: CGRect, afterScreenUpdates afterUpdates: Bool) -> Bool verwenden, um den Etiketteninhalt darauf zeichnen:


let label = UILabel(frame: CGRect(origin: .zero, size: CGSize(width: 200, height: 50))) 
label.text = "StackOverflow" 
label.backgroundColor = UIColor.red.withAlphaComponent(0.2) 
label.textColor = .blue 
label.textAlignment = .center 
label.font = UIFont.boldSystemFont(ofSize: 24) 

UIGraphicsBeginImageContextWithOptions(label.bounds.size, false, 0) 
label.drawHierarchy(in: label.bounds, afterScreenUpdates: true) 
let image = UIGraphicsGetImageFromCurrentImageContext() 
UIGraphicsEndImageContext() 

enter image description here

+0

Danke, dass Sie mir einen guten Rat gegeben haben. – ginger

-1

Sie können einen neuen IBOutlet vom Typ UIImage schaffen, messageImage, und fügen Sie das Bild, das Sie in dort wollen. Wenn Sie das Label konvertieren möchten, verwenden Sie die Funktion isHidden, um messageLabel auszublenden und messageImage anzuzeigen.

messageLabel.isHidden = true 
messageImage.isHidden = false 
+0

Vielen Dank für Ihren Rat. Aber ich möchte nicht die Sätze von UILabel verstecken. – ginger

+0

Wie unterscheidet sich das von UILabel zu UIImage? Wie auch immer, das UILabel wird nicht mehr angezeigt. – sn8wman

+0

@ sn8wman Die beiden sind nicht einmal im entferntesten ähnlich. Die Frage ist, wie man aus den Inhalten eines dynamischen Labels ein Bild erstellt. – rmaddy

Verwandte Themen