NSAttributedString 사용하기: 텍스트 스타일링 강화
NSAttributedString 사용하기: 텍스트 스타일링 강화
Swift를 사용하여 멋진 iOS 애플리케이션을 만들 때, 텍스트를 단순한 문자열로만 사용하는 경우가 있습니다. 그러나 NSAttributedString
을 활용하면 더 다채롭고 사용자 친화적인 텍스트 스타일링이 가능합니다. 이 글에서는 NSAttributedString
을 사용하여 텍스트의 색상, 폰트, 크기 등을 설정하고, 더욱 매력적인 사용자 인터페이스를 구성하는 방법을 다룹니다.
NSAttributedString 기본 개념
NSAttributedString
은 텍스트에 다양한 속성을 부여할 수 있는 클래스입니다. 이 클래스는 다음과 같은 속성들을 포함할 수 있습니다:
- 폰트(Font): 텍스트의 글꼴과 크기
- 색상(Color): 텍스트의 색상
- 여백(Kerning): 문자 간의 간격
- 스타일(Paragraph Style): 텍스트 정렬 및 줄 간격 등
기본 NSAttributedString
은 불변 객체(immutable object)인데, 이는 한 번 생성되면 변경할 수 없음을 의미합니다. 변형이 가능한 객체는 NSMutableAttributedString
을 사용해야 합니다.
NSAttributedString 생성하기
다음은 텍스트에 다양한 속성을 적용하여 NSAttributedString
을 만드는 예제입니다.
swiftlet text = "Hello, NSAttributedString!" let attributes: [NSAttributedString.Key: Any] = [ .font: UIFont.systemFont(ofSize: 18), .foregroundColor: UIColor.blue, .kern: 1.5 ] let attributedString = NSAttributedString(string: text, attributes: attributes)
이 코드에서는 문자열 "Hello, NSAttributedString!"에 대해 세 가지 속성을 설정했습니다: 폰트 크기는 18, 텍스트 색상은 파란색, 그리고 문자 간 간격(kern)은 1.5입니다.
NSMutableAttributedString 활용하기
앞서 설명한 것처럼 NSMutableAttributedString
은 변형이 가능합니다. 이를 활용하면 동일한 문자열의 서로 다른 부분에 다양한 속성을 적용할 수 있습니다.
swiftlet mutableAttributedString = NSMutableAttributedString(string: "Hello, NSAttributedString!") // 'Hello' 부분 스타일링 mutableAttributedString.addAttribute(.font, value: UIFont.boldSystemFont(ofSize: 24), range: NSRange(location: 0, length: 5)) mutableAttributedString.addAttribute(.foregroundColor, value: UIColor.red, range: NSRange(location: 0, length: 5)) // 나머지 부분 스타일링 mutableAttributedString.addAttribute(.font, value: UIFont.systemFont(ofSize: 18), range: NSRange(location: 7, length: 18)) mutableAttributedString.addAttribute(.foregroundColor, value: UIColor.blue, range: NSRange(location: 7, length: 18))
이 예제에서는 문자열의 첫 번째 단어 "Hello"에 대해 굵은(bold) 글꼴과 빨간색을 설정하였고, 나머지 텍스트는 일반 글꼴과 파란색을 설정하였습니다.
NSAttributedString을 UILabel에 적용하기
NSAttributedString
을 UILabel
과 함께 사용하는 방법을 알아보겠습니다. 일반 UILabel
의 text
속성 대신 attributedText
속성을 사용하면 됩니다.
swiftlet label = UILabel() label.attributedText = attributedString
앞서 만든 attributedString
을 UILabel
의 attributedText
로 설정하여, 스타일링된 텍스트를 표시할 수 있습니다.
다양한 속성 추가하기
NSAttributedString
을 통해 적용할 수 있는 다양한 속성을 몇 가지 더 살펴보겠습니다.
배경색(Background Color)
swiftlet backgroundColorAttribute: [NSAttributedString.Key: Any] = [ .backgroundColor: UIColor.yellow ] attributedString.addAttributes(backgroundColorAttribute, range: NSRange(location: 0, length: 5))
밑줄(Underline)
swiftlet underlineAttribute: [NSAttributedString.Key: Any] = [ .underlineStyle: NSUnderlineStyle.single.rawValue ] attributedString.addAttributes(underlineAttribute, range: NSRange(location: 7, length: 18))
텍스트 강조(Stylizing Text)
swiftlet shadow = NSShadow() shadow.shadowColor = UIColor.gray shadow.shadowOffset = CGSize(width: 1, height: 1) let shadowAttribute: [NSAttributedString.Key: Any] = [ .shadow: shadow ] attributedString.addAttributes(shadowAttribute, range: NSRange(location: 0, length: 25))
이처럼 다양한 속성을 활용하여 텍스트를 보다 매력적으로 꾸밀 수 있습니다.
마무리
Swift에서 NSAttributedString
을 사용하면 텍스트 스타일링을 강화하여 사용자 인터페이스를 개선할 수 있습니다. NSAttributedString
과 NSMutableAttributedString
클래스는 많은 속성을 지원하여, 여러 가지 디자인 요구 사항에 맞게 텍스트를 자유롭게 꾸밀 수 있습니다. 오늘 다룬 기법들을 활용하여 여러분의 iOS 애플리케이션을 더욱 돋보이게 만들어 보세요.