Swift로 UIlabel에 HTML을 표시하는 방법

3587 단어 Swift

Swift로 UIlabel에 HTML을 표시하는 방법


Objectiver-C와 다를 게 없지만 조금 헷갈려서 적어놨어요.
주) UIlabel이기 때문에 표현할 수밖에 없다a> 탭에서 링크를 클릭하려면 UIWebView를 사용하십시오

샘플 항목


샘플 코드

var htmlText = "空は<font color=\"blue\">青い</font>。<br>" +
               "An apple is <font color=\"red\">red</font>."

var err:NSError?
self.htmlLabel.attributedText = NSAttributedString(
                  data: htmlText.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true),
               options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType],
    documentAttributes: nil,
                 error: &err)
self.htmlLabel.font = UIFont(name: "System", size: 14)

실행 결과



주안점


NSAttributedString


기본적으로 아래 링크(Obj-C), NSAttributedString을 사용하여 HTML 변환
http://stackoverflow.com/questions/15872257/display-html-text-in-uilabel-iphone

NSError 는 optional 에서


NSError 값은 nil 값이어야 합니다.옵션형 사용하세요.
이걸 잊어버리면 "Extra argument'data'in call"등 전혀 상관없는 컴파일 오류가 발생합니다

font 구성


HTML이 표시되면 Storyboard에서 설정한 System 글꼴이 영문 글꼴로 올바르지 않습니다.
그런 다음 UIFont에서 설정합니다.
Swift에서 fontWithName은 추천하지 않습니다. init로 font를 설정합니다.

UIlabel의 링크는 0입니다.


HTML에 국한되지 않지만, 2줄 이상을 표시하려면 UIlabel 값이 변경될 수 있습니다.
StoryBoard에서 UIlabel의 Linus를 0으로 설정하세요.

좋은 웹페이지 즐겨찾기