Swift Как рассчитать высоту текста одной строки из ее шрифта

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

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

У UIFont есть строка с приспешником.

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

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

Я искал способ сделать это и найти этот ответ, где у него есть расширение 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 } } 

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

Interesting Posts
Давайте будем гением компьютера.