적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Swift iOS 앱 개발/Swift

[Swift iOS] NSMutableAttributedString 문자열 부분 설정

hongssup_ 2022. 7. 4. 18:40
반응형

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
반응형