Как уменьшить интервал между строками UILabel (Swift)?

#ios #swift #uilabel #nsattributedstring #line-spacing

#iOS #swift #uilabel #nsattributedstring #межстрочный интервал

Вопрос:

Теперь я пытаюсь уменьшить интервал между метками с несколькими строками. Для моего способа я создаю такую функцию..

 func setLineHeight(lineHeight: CGFloat) {
    let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.lineSpacing = 1.0
    paragraphStyle.lineHeightMultiple = lineHeight
    paragraphStyle.alignment = self.textAlignment

    let attrString = NSMutableAttributedString()
    if (self.attributedText != nil) {
        attrString.append( self.attributedText!)
    } else {
        attrString.append( NSMutableAttributedString(string: self.text!))
        attrString.addAttribute(NSAttributedString.Key.font, value: self.font, range: NSMakeRange(0, attrString.length))
    }
    attrString.addAttribute(NSAttributedString.Key.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attrString.length))
    self.attributedText = attrString
}
 

и используйте его, myLabel.setLineHeight(0.7)

Для проблемы это может уменьшить высоту строки! but…It оставьте дополнительное место в нижней части этикетки.

введите описание изображения здесь

Я выравниваю свой текст по центру по вертикали в родительском представлении, но после того, как я setLineHeight его больше не центрирую. Кто-нибудь видел эту проблему?

Для ограничения метки v введите описание изображения здесь

Ответ №1:

Вы также можете установить межстрочный интервал из раскадровки и сохранить выравнивание, как показано на следующем gif

введите описание изображения здесь

Комментарии:

1. спасибо за ответ, но я не блокировал никаких ограничений, кроме левого, правого и вертикального в контейнере krub.