Things take time

[SWIFT] UILabel의 text 속성(여러 색상 넣기, 폰트 바꾸기 등) 본문

iOS (기능)

[SWIFT] UILabel의 text 속성(여러 색상 넣기, 폰트 바꾸기 등)

겸손할 겸 2018. 3. 28. 14:21

[개요]


보통 UILabel의 텍스트를 넣을때는 UILabel(frame)으로 크기를 잡고 UILabel.text = "" 로 문구를 지정하며, UILabel.textColor = "" 로 해당 텍스트의 색상 속성을 결정한다.


그런데 만약, 내가 하고 싶은 문구가


ABCD가 등록되었습니다.


라면?

중간 중간 텍스트의 속성을 바꾸거나 할 필요가 있을 때 사용하면 된다.


예제는 2가지의 상황이다.


1. 보여줄 텍스트는 13크기이며, bold체이길 원한다.

2. 0~4 번째 글자는 빨간색이어야한다.



[코드]

let mannText = (msgSxnCd == "0002" ? "상단공지" : "일반공지") + "가 등록되었습니다." var mannMutableText = NSMutableAttributedString(string: mannText, attributes: [NSAttributedStringKey.font:UIFont.boldSystemFont(ofSize: 13)]) mannMutableText.addAttributes([NSAttributedStringKey.foregroundColor:UIColor.red], range: NSRange(location:0,length:4)) mannLabel.attributedText = mannMutableText

2-4번째 줄만 주의깊게 보면 간단하다.

특히, 처음 사용하는 사람에게는 NSMutableAttributedString이란 클래스 생성자에 들어가는 attributes에는 딕셔너리 형태의 키/밸류 값이 들어가며 키의 값은 NSAttributedStringKey의 하위 변수들이 들어간다는 것을 기억하자.