Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- url 추적
- transformation.map
- notifychanged
- Android
- pod install
- ViewBuilder
- 스크롤 탭
- 기존 앱
- swift
- oberve url
- convert base64
- Swift Package Manager
- SwiftUI
- UIPresentationController
- ios
- 상단 탭바
- Tuist
- detect url
- swift #swift keychain #keychain 사용법
- scrolling tab
- 개발자 면접
- url 관찰
- List
- DevelopmentRegion
- DataBinding
- UIViewControllerTransitioningDelegate
- Side Menu
- GeometryReader
- base64 변환
- development language
Archives
- Today
- Total
버그 잡이
Swift - Attributed String으로 특정 글자만 색상 바꾸기 본문
https://www.hackingwithswift.com/articles/113/nsattributedstring-by-example
위 글을 참고하여 작성한 글임을 밝힙니다.
string은 간단한 text를 표현하기에는 좋은 도구이지만 text 일부분에만 색상을 입히고, 밑줄을 치는 등의 효과를 주기 위해서는 AttributedString을 알아야 합니다.
Attributed String 만들기
let quote = "Haters gonna hate"
let attributedQuote = NSAttributedString(string: quote)
위 코드가 출력된 결과는 string과 차이가 없습니다. 특성을 하나씩 줘보겠습니다.
- font 바꾸기
let quote = "Haters gonna hate"
let font = UIFont.systemFont(ofSize: 72)
let attributes = [NSAttributedString.Key.font: font]
let attributedQuote = NSAttributedString(string: quote, attributes: attributes)
- font + 글자 색상
let font = UIFont.systemFont(ofSize: 72)
let attributes: [NSAttributedString.Key: Any] = [
.font: font,
.foregroundColor: UIColor.red,
]
- font + 글자 색상 + 그림자
let font = UIFont.systemFont(ofSize: 72)
let shadow = NSShadow()
shadow.shadowColor = UIColor.red
shadow.shadowBlurRadius = 5
let attributes: [NSAttributedString.Key: Any] = [
.font: font,
.foregroundColor: UIColor.white,
.shadow: shadow
]
Attributed String 수정하기
위에서 살펴 본 방법은 attributed string을 만드는 방법입니다.
이번에는 기존에 존재하는 attributed string을 수정하는 방법에 대해서 알아보겠습니다.
.addAttribute()를 통해서 특성을 추가할 수 있습니다.
let quote = "Haters gonna hate"
let attributedQuote = NSMutableAttributedString(string: quote)
attributedQuote.addAttribute(.foregroundColor, value: UIColor.red, range: NSRange(location: 7, length: 5))
range는 string의 특정 텍스트만 특성을 바꿀 수 있게 해줍니다.
위 결과 "Hatters gonna hate" 에서 gonna만 빨간 글자로 나오게 되지요.
이렇게 String의 일부분만 다른 색상으로 바꿀 수 있습니다.
이와 같은 원리로 일부분만 Bold 처리하는 등의 다양한 효과를 줄 수 있습니다.
반응형
'Swift' 카테고리의 다른 글
Swift에서 Property Wrapper 시작하기 #UserDefaults # projectedValue (0) | 2020.11.28 |
---|---|
Swift - 스크롤뷰(scorllView)를 구현하기 위한 2가지 방법 (0) | 2020.11.01 |
Swfit - 객체를 포함한 json 을 string으로 변환하기 (0) | 2020.10.05 |
Swift - "오늘 하루 보지 않기" 팝업 Date() 계산하기 (0) | 2020.09.28 |
Swift 디버깅 식별자 #나만의 로그print 만들기 (0) | 2020.09.01 |
Comments