티스토리 뷰
[1] HTML 스타일 그대로 로드하기 (with 커스텀 설정)
UILabel에 HTML 스타일 그대로 로드할 수 있습니다. (폰트나 색깔 같은 것을 커스터마이징 할 수 있음)
예를들어 <b></b> 또는 <strong></strong> 태그로 감싸진 것을 볼드처리 해주고
html 태그들을 지워주고 html entity 들을 디코딩해줍니다. (html entity표 = 영어버전 및 한글버전)
저는 css style을 참고해서 extension을 만들었고
이런식으로 쓸 수 있습니다.
돌려보면 이렇게 스타일이 적용되고 + 으로 인코딩되었던 + 도 디코딩되어서 나옵니다..!!
참고로 저는 paragraph 스타일만 정의해줘서 html에 h1 같은 태그가 있으면 안먹힐 거에요..!
css문서보니까 h1 스타일을 따로 정의해주더라구요...!+!
하지만 지금 정해진 영역보다 텍스트가 더 많은데 three dot (...) 처리가 안되는 것을 보실 수 있습니다.
이 블로그를 보고 이렇게 스타일을 업데이트해봤는데도 ... 처리가 안되더라구요 😱 (왜 안될까요 흑... 너무 찝찝..)
[2] html을 다 제거해버린 텍스트를 넣어주기
1번처럼 html 스타일 적용안하고 html 관련 코드라면 다 제거해버리는 방법입니다.
이렇게 하면 html entity들을 디코딩해줄뿐만 아니라 html 태그들도 싹 지워줍니다.
아래와 같이 ViewController 코드를 바꾸고 돌려보면
이렇게 나옵니다.
[추가] html 태그들은 남기고, entity들만 디코딩하고 싶을때
2번과 달리 html 태그들은 남기고, entity들만 디코딩하고 싶을때가 있을 수도 있습니다.
HTMLEntityMapping을 하드코딩해놓고 활용하는 방법도 있습니다.
관련 오픈소스들도 있더라구요..! 몇개 첨부합니다
https://github.com/adela-chang/StringExtensionHTML
https://github.com/IBM-Swift/swift-html-entities
'🍏 > iOS' 카테고리의 다른 글
[TextKit] TextKit 구조 그림 (0) | 2020.04.02 |
---|---|
[ReactorKit] ReactorKit의 Transform 함수에 대해 알아보자 (0) | 2020.03.07 |
[Local DB] CoreData 도움되는 링크 모음 (0) | 2020.02.05 |
[URLSession] URLSession과 URLSessionDataTask (0) | 2020.02.03 |
[Cocoapod] Unit Test를 돌렸는데, "One of the two will be used. Which one is undefined" 에러가 난다면 (1) | 2020.01.18 |
- Total
- Today
- Yesterday
- SerializerMethodField
- Flutter getter setter
- 구글 Geocoding API
- 장고 Custom Management Command
- github actions
- PencilKit
- Django FCM
- drf custom error
- ribs
- Flutter Clipboard
- Django Heroku Scheduler
- 플러터 싱글톤
- 플러터 얼럿
- Flutter Spacer
- DRF APIException
- flutter 앱 출시
- Flutter Text Gradient
- Watch App for iOS App vs Watch App
- flutter deep link
- flutter build mode
- ipad multitasking
- Sketch 누끼
- Python Type Hint
- cocoapod
- flutter dynamic link
- Dart Factory
- METAL
- Flutter 로딩
- Django Firebase Cloud Messaging
- 장고 URL querystring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |