최대 3 줄까지 사용할 수있는 다중 행 UILabel이 있습니다. 즉, message.numberOfLines = 3;목표 C - UILabel 다중 행 수직 간격 높이
모든 것이 잘 작동하지만 어떻게 선 사이의 수직 간격을 설정할 수 있습니까? 예 : 1 호선과 2 호선 등?
ENLIGHT 제발, 내가 선 사이의 간격을 조정하는 방법을 찾을 수 없어
최대 3 줄까지 사용할 수있는 다중 행 UILabel이 있습니다. 즉, message.numberOfLines = 3;목표 C - UILabel 다중 행 수직 간격 높이
모든 것이 잘 작동하지만 어떻게 선 사이의 수직 간격을 설정할 수 있습니까? 예 : 1 호선과 2 호선 등?
ENLIGHT 제발, 내가 선 사이의 간격을 조정하는 방법을 찾을 수 없어
티. UILabel의 font 속성에는 많은 읽기 전용 속성이 있으므로 도움이되지 않습니다.
줄 간격을 변경하려면 내 텍스트를 그려야합니다. NSString의 -drawAtPoint와 -drawInRect를 사용하고 -sizeWithFont 메소드 중 하나 이상을 사용하여 텍스트를 분할하여 줄 당 단어 또는 문자의 올바른 수를 그리기위한 텍스트의 길이를 파악합니다.
감사합니다. 몇 가지 예제 코드를 추가 하시겠습니까? –
예, 선 높이를 읽기 전용으로 만드는 것은 매우 궁금한 부분입니다. 마찬가지로, "누가 그것을 조정하고 싶습니까?" :) –
내가 아는이 유일한 방법은 텍스트를 직접 그려 보는 것입니다. 3.2 이상에서는 CoreText를 사용하여 텍스트를 직접 그릴 수 있습니다. iPhone> = 4.0에서 CT를 사용할 수 있는지 확실하지 않습니다. CoreText는 유연한 텍스트 그리기를위한 기능적인 C API입니다. 프로그래밍
:
스위프트 4
라벨 확장을
extension UILabel {
// Pass value for any one of both parameters and see result
func setLineSpacing(lineSpacing: CGFloat = 0.0, lineHeightMultiple: CGFloat = 0.0) {
guard let labelText = self.text else { return }
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineSpacing = lineSpacing
paragraphStyle.lineHeightMultiple = lineHeightMultiple
let attributedString:NSMutableAttributedString
if let labelattributedText = self.attributedText {
attributedString = NSMutableAttributedString(attributedString: labelattributedText)
} else {
attributedString = NSMutableAttributedString(string: labelText)
}
// Line spacing attribute
attributedString.addAttribute(NSAttributedStringKey.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attributedString.length))
self.attributedText = attributedString
}
}
이제 전화 확장 기능
let label = UILabel()
let stringValue = "How to\ncontrol\nthe\nline spacing\nin UILabel"
// Pass value for any one argument - lineSpacing or lineHeightMultiple
label.setLineSpacing(lineSpacing: 2.0) . // try values 1.0 to 5.0
// or try lineHeightMultiple
//label.setLineSpacing(lineHeightMultiple = 2.0) // try values 0.5 to 2.0
또는 사용 리터를 사용하여 아벨 인스턴스는 인터페이스 빌더에서
let label = UILabel()
let stringValue = "How to\ncontrol\nthe\nline spacing\nin UILabel"
let attrString = NSMutableAttributedString(string: stringValue)
var style = NSMutableParagraphStyle()
style.lineSpacing = 24 // change line spacing between paragraph like 36 or 48
style.minimumLineHeight = 20 // change line spacing between each line like 30 or 40
// Line spacing attribute
attrString.addAttribute(NSAttributedStringKey.paragraphStyle, value: style, range: NSRange(location: 0, length: stringValue.characters.count))
// Character spacing attribute
attrString.addAttribute(NSAttributedStringKey.kern, value: 2, range: NSMakeRange(0, attrString.length))
label.attributedText = attrString
를 (그냥 &는 결과를 보려면이 코드를 실행 복사) :
이 도움이 될 : http://stackoverflow.com/questions/ 3880526/줄 간격을 두 줄로 늘어나는 방법 –