반응형
NSMutableAttributedString을 사용하면 하나의 문자열 내에서 편리하게 색이나 폰트, 크기 등의 속성을 변경할 수 있다.
1. addAttribute을 이용한 부분 설정
_name : 설정할 속성(색깔, 폰트 등), value : 설정 값(빨간색, 시스템폰트 등), range : 설정할 범위
func addAttribute(_ name: NSAttributedString.Key, value: Any, range: NSRange)
1) 문자열 부분 색깔 설정
안녕, 나는 빨클러야.
label.text = "안녕, 나는 빨클러야."
let attributedStr = NSMutableAttributedString(string: label.text!)
attributedStr.addAttribute(.foregroundColor, value: UIColor.red, range: (label.text! as NSString).range(of: "빨클러"))
label.attributedText = attributedStr
2) 문자열 부분 폰트 설정
안녕, 나는 빨클러야.
attributedStr.addAttribute(.font, value: UIFont.systemFont(ofSize: 24, weight: .bold), range: (label.text! as NSString).range(of: "빨클러"))
label.attributedText = attributedStr
2. addAttributes를 이용한 속성 한번에 적용
func addAttributes([NSAttributedString.Key : Any], range: NSRange)
안녕, 나는 빨클러야.
다음과 같이 딕셔너리 형식으로 문자열 설정을 한번에 여러개 적용할 수 있다.
label.text = "안녕, 나는 빨클러야."
let attributedStr = NSMutableAttributedString(string: label.text!)
attributedStr.addAttributes([.font : UIFont.systemFont(ofSize: 24, weight: .bold), .foregroundColor : UIColor.red], range: (label.text! as NSString).range(of: "빨클러"))
label.attributedText = attributedStr
* label.text를 사전에 설정해 주었으므로, nil일 수가 없기에 label.text에 강제 언래핑을 사용하였다.
참고 : roniruny.tistory,
728x90
반응형
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift iOS] detect backspace in empty UITextField (0) | 2022.07.28 |
---|---|
[Swift Layout] SnapKit 사용해보기 (0) | 2022.07.07 |
[Swift] inout parameter (0) | 2022.05.22 |
[Swift] 메서드 정복하기 Instance / static / class methods 비교 (0) | 2022.05.13 |
[Swift] Class / Struct / Enum Types (0) | 2022.05.12 |