#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
его больше не центрирую. Кто-нибудь видел эту проблему?
Ответ №1:
Вы также можете установить межстрочный интервал из раскадровки и сохранить выравнивание, как показано на следующем gif
Комментарии:
1. спасибо за ответ, но я не блокировал никаких ограничений, кроме левого, правого и вертикального в контейнере krub.