2016-02-29 9 views
7

Ich stieß auf ein Problem, wo ich animierte, eine Beschriftung vertikal die gleiche Entfernung von einer textField Texthöhe zu übersetzen. In den meisten Fällen nur textField.bounds.heigt, aber wenn die Höhe des TextFields größer als die Texthöhe ist, wird es für mich nicht gut sein. So muss ich wissen: Wie berechnet man die Zeilenhöhe der Zeichenfolge Text von seiner ?Swift So berechnen Sie eine Textzeile Höhe von seiner Schriftart

In Bezug auf das Duplikat: Es gibt ein bisschen anders von dem, was ich brauche. Diese Antwort (auf die ich in meiner Antwort verwiesen habe) ergibt die Gesamthöhe abhängig von 1) der Zeichenkette 2) der Breite 3) der Schriftart. Was ich brauchte, ist eine Zeile Höhe dpending nur auf die Schriftart.

+1

Mögliche Duplikat [Herauszufinden Größe von UILabel basierend auf String in Swift] (http: // Stackoverflow. com/questions/30450434/Größe-von-uilabel-basiert-auf-String-in-Swift) – TylerH

+0

Es ist ein bisschen anders von dem, was ich brauche. Diese Antwort (auf die ich in meiner Antwort verwiesen habe) ergibt die Gesamthöhe abhängig von 1) der Zeichenkette 2) der Breite 3) der Schriftart. Was ich brauchte, ist ** eine Zeilenhöhe, die nur von der Schriftart abhängt ** – Ismail

Antwort

6

UIFont hat eine propperty lineheight smth wie diese

 if let font = _textView.font { 
     let height = font.lineHeight 
    } 

wo Schriftart es Ihre Schrift ist

3

Ich habe nach einer Möglichkeit gesucht, dies zu tun und diese answer finden, wo es eine String Erweiterung hat, um die Größe für die Zeichenfolge und eine bestimmte Schriftart zu berechnen. Ich habe es geändert zu tun, was ich will (bekommen die Zeilenhöhe von Text mit einer Schriftart geschrieben.):

extension UIFont { 

    var height:CGFloat { 
    let constraintRect = CGSize(width: CGFloat.max, height: CGFloat.max) 

    let boundingBox = "Anytext".boundingRectWithSize(constraintRect, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: self], context: nil) 

    return boundingBox.height 
    } 
} 

Ich hoffe, das jemand es zu suchen hilft. (kann ich in der Zukunft sein).