안녕하세요. 요즘 프로젝트 기간의 압박으로 인해 열심히 달리고 있어 포스팅을 몇 달 동안 못하고 있었네요.
포스팅을 하려면 새로운 것을 공부도 해야되고, 자료도 찾아보고 해야 되는데 그럴 시간이 없었다는 변명과 함께 포스팅을 시작합니다.
오늘은 HTML을 AttributedString으로 변환하는 방법을 알아보려고 합니다.
앱을 개발하다보면 API에서 HTML로 데이터를 내려주면 HTML을 문자열로 바꿔서 보여줘야 되는 경우가 있습니다.
이번 프로젝트에서도 필요했던 기능이라서 찾아보았는데 생각보단 간단하게 개발을 할 수 있어서 해당 내용을 간단하게 정리해보려고 합니다.
HTMl을 AttributedString으로 변환하는 방법은 생각보다 간단합니다. 이미 AttributedString에서 옵션으로 제공하고 있습니다.
예제코드
이렇게 하면 HTML이 AttributedString으로 잘 변환 된 것을 확인 할 수 있습니다.
결과화면
앱 개발을 하다보면 기본적으로 제공하는 시스템 폰트 외에 앱 자체적으로 사용되는 커스텀 폰트로 변환해야 되는 경우도 있고, 기본 텍스트 색상이 검정색이 아닌 경우도 많이 있습니다.
이럴 경우에는 간단하게 기본으로 설정되는 값을 HTML로 작성하여 감싸주기만 하면 됩니다.
Font 설정하기
Font Size 설정하기
Font Color 설정하기
Line Height 설정하기
이제 위에 내용들을 합쳐서 Extension으로 만들어 여러 곳에서 접근하여 사용할 수 있게 전체 코드를 작성해보겠습니다.
전체 코드
사용 방법
위에서 UITextView를 사용하는 이유를 설명 드렸는데요. UITextView를 UILabel 처럼 수정하지도 못하고, 스크롤 되지도 않게 하기 위한 방법을 알려 드리겠습니다.
지금까지 HTML을 AttributedString으로 변환하는 방법에 대해 알아보았습니다.
오랜만에 포스팅을 하려니 뭔가 내용 정리도 잘 안 되는거 같고 글을 쓰기가 어렵네요. 역시 주기적으로 작성을 해야 실력도 유지가 되는 것 같습니다.
다음번 포스팅은 비교적 짧은 시간 안에 업로드 되길 바라며 이만 마치겠습니다.
그럼 달콤한 코딩 되세요!
stack overflow - Swift: Display HTML data in a label or textView