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
- rxswift
- Realm
- iOS16
- Code
- mac
- Apple
- JPA
- 웹뷰
- error
- IOS
- MacOS
- Session
- UIButton
- SwiftUI
- FLUTTER
- window
- view
- appstore
- Git
- Firebase
- Swift
- 한글
- Notification
- github
- stack
- darkmode
- Xcode
- 개발자
- Python
- Archive
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