[iOS/Swift] UILabel 행간 조절 이슈

김혜수·2023년 5월 14일
0

iOS를 개발하면서..

목록 보기
19/20

나는 행간 조절을 위해서 다음과 같은 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을 빠져나가게 된다...

꼼꼼하지 못했던 실수..

profile
iOS를 좋아하는 사람

0개의 댓글