나는 행간 조절을 위해서 다음과 같은 extension을 사용했다.
extension UILabel {
public func setLineSpacing(lineSpacing: CGFloat) {
if let text = self.text {
let attributedStr = NSMutableAttributedString(string: text)
let style = NSMutableParagraphStyle()
style.lineSpacing = lineSpacing
attributedStr.addAttribute(
NSAttributedString.Key.paragraphStyle,
value: style,
range: NSRange(location: 0, length: attributedStr.length))
self.attributedText = attributedStr
}
}
}
그리고 다음과 같이 적용해 졌는데 행간 조절이 전혀 되지 않았다
private let subtitleLabel: UILabel = {
let label = UILabel()
label.textColor = .wkBlack45
label.font = .b2M
label.setLineSpacing(lineSpacing: 100)
label.numberOfLines = 2
return label
}()
100으로 해도 전혀 미동도 없었음..
잠시 생각해보니..
저 extension을 보면 내부 구조가 text가 nil이 아닐때만 그 내부가 동작한다.
근데 나는 text를 라벨 초기화 부분에서 해준게 아니라, 나중에 지정해줬으니
초기화부분에서 setLineSpacing을 해주면 당연히.. text가 없어서 저 extension을 빠져나가게 된다...
꼼꼼하지 못했던 실수..