2016-02-29 48 views
7

Wpadłem na numer, w którym musiałem animować tłumaczenie etykiety w pionie na taką samą odległość wysokości tekstu textField. W większości przypadków po prostu textField.bounds.heigt, ale jeśli wysokość pola tekstowego jest większa niż wysokość tekstu, nie będzie to dla mnie dobre. Więc muszę wiedzieć: Jak obliczyć wysokość linii tekstu smyczkowego z jego UIFont?Swift Jak obliczyć wysokość tekstu liniowego z jego czcionki

Odnośnie duplikatu: Jest trochę inaczej niż potrzebuję. ta odpowiedź (o której wspomniałem w mojej odpowiedzi) uzyskuje całkowitą wysokość w zależności od 1) ciągu 2) szerokości 3) czcionki. To, czego potrzebowałem, to wysokość jednego wiersza dodawana tylko do czcionki.

+1

Możliwy duplikat [dowiedzieć się wielkością UILabel opartego na ciąg w Swift] (http: // stackoverflow. com/questions/30450434/figure-out-size-of-uilabel-based-on-string-in-swift) – TylerH

+0

To trochę różni się od tego, czego potrzebuję. ta odpowiedź (o której wspomniałem w mojej odpowiedzi) uzyskuje całkowitą wysokość w zależności od 1) ciągu 2) szerokości 3) czcionki. Potrzebowałem ** wysokości jednego wiersza dodawanego tylko do czcionki ** – Ismail

Odpowiedz

6

UIFont ma propperty lineHeight smth jak ten

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

gdzie czcionka jest to czcionka

3

Szukałem sposobu, aby to zrobić i znaleźć to answer, gdzie ma rozszerzenie String, aby obliczyć rozmiar ciągu i danej czcionki. I zostały zmodyfikowane go robić co chcę (uzyskać wysokość linii tekstu napisane przy użyciu czcionki.):

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 
    } 
} 

mam nadzieję, że to pomoże kogoś szukać. (może być sobą w przyszłości).