2016-02-29 3 views
7

Я столкнулся с проблемой, когда мне нужно было оживить перевод ярлыка по вертикали на то же расстояние от текста textField. В большинстве случаев только textField.bounds.heigt, но если высота textField больше, чем высота текста, это не будет хорошо для меня. Так что мне нужно знать: Как рассчитать высоту строки текста строки из ее UIFont?Swift Как рассчитать высоту текста одной строки из ее шрифта

Что касается дубликата: Немного отличается от того, что мне нужно. этот ответ (на который я ссылался в моем ответе) получает общую высоту в зависимости от 1) строки 2) ширины 3) шрифта. То, что мне нужно, это одна линия высотой, только на шрифте.

+1

Возможный дубликат [Выяснить размер UILabel на основе строки в Swift] (HTTP: // StackOverflow. com/questions/30450434/figure-out-size-of-uilabel-based-on-string-in-swift) – TylerH

+0

Это немного отличается от того, что мне нужно. этот ответ (на который я ссылался в моем ответе) получает общую высоту в зависимости от 1) строки 2) ширины 3) шрифта. То, что мне нужно, - это ** высота одной строки, только на шрифте ** – Ismail

ответ

6

UIFont имеет propperty LineHeight л, как этот

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

где шрифт это ваш шрифт

3

Я искал способ сделать это и найти его answer, где у него есть расширение String, чтобы рассчитать размер строки и заданного шрифта. Я изменил его делать то, что я хочу (получить высоту строки текста, написанный с использованием шрифта.):

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

Я надеюсь, что это помогает кто-то смотрит на него. (может быть я в будущем).

Смежные вопросы