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 | 31 |
Tags
- rxswift
- Code
- SwiftUI
- Realm
- Session
- Git
- JPA
- Notification
- iOS16
- error
- Xcode
- appstore
- Swift
- FLUTTER
- Archive
- mac
- github
- window
- view
- MacOS
- 웹뷰
- Firebase
- Apple
- darkmode
- 개발자
- UIButton
- geofencing
- IOS
- 한글
- stack
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) Html to AttributedString - EEYatHo iOS 본문
반응형
Html 문법을 지원하는0 NSMutableAttributedString 생성자
NSMutableAttributedString(
data: data, // htmlString -> data
options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue],
documentAttributes: nil
)
Html String -> NSMutableAttributedString 기본형
func htmlToAtt(htmlStr: String) -> NSMutableAttributedString? {
guard let data = htmlStr.data(using: .utf8) else {
return nil
}
guard let att = try? NSMutableAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil) else {
return nil
}
return att
}
Font, Size, Color, Align 적용
func htmlToAtt(htmlStr: String) -> NSMutableAttributedString? {
let newHTML = String(format: """
<div style="text-align: center;">
<span style="
font-family: '-apple-system', 'AppleSDGothicNeo-Regular';
font-size: 16;
color: rgb(255,255,255);
">%@</span>
</div>
""", htmlStr)
guard let data = newHTML.data(using: .utf8) else {
return nil
}
guard let att = try? NSMutableAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil) else {
return nil
}
// align 적용시 자꾸 끝에 줄바꿈이 생김. 아직 원인을 모르겠음..
if att.string.last == "\n" {
return att.attributedSubstring(from: NSRange(location: 0, length: att.length - 1)) as? NSMutableAttributedString
} else {
return att
}
}
필요한 태그로 기존의 htmlStr을 감싸는 원리.
align를 적용할 때 자꾸 끝에 줄바꿈(\n)이 생겨서 제거하는 코드도 추가되었다. 원인 파악하면 수정.
'iOS, Swift > Feature' 카테고리의 다른 글
Swift ) 이미지 다운로드, 캐싱 - EEYatHo iOS (0) | 2022.06.21 |
---|---|
Swift ) TTS (Text To Speech) - EEYatHo iOS (0) | 2022.05.05 |
Swift ) xlsx 이미지까지 자유롭게 - EEYatHo iOS (0) | 2022.02.21 |
Swift) .CSV 파일 만들기 - EEYatHo iOS (0) | 2022.02.02 |
Swift ) 디바이스 여유공간 구하기 - EEYatHo iOS (3) | 2021.07.21 |
Comments