내 백엔드에서 오는 HTML 문자열을 textView
, 에 대해 NSAttributedString
으로 변환하려고하지만 글꼴 자체를으로 설정하고 싶습니다. 그러나이 내 상황에서 불가능Swift : 사용자 정의 글꼴로 HTML에서 문자열 작성
<p><strong>Title</strong></p> <p><strong>Extra info ..</strong></p><p>- Some more info</p> <p>- Contact</p>
일부에 유래 주제는 서버 백엔드에서 글꼴을 설정하는 것이 좋습니다 : 여기
내 서버에서 오는 HTML 문자열의 예입니다. 내가 NSAtrributedString
을 만드는 방법에 대한 온라인 검색하십시오 WebView
또는 NSAttributedString
을 사용하여, 나는 어떤 이유로 두 번째로 갔다.
func setHTMLFromString() -> NSAttributedString{
let attrStr = try! NSMutableAttributedString(
data: self.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,
options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil)
return attrStr
}
그러나 내가 내 텍스트 뷰에 설정 한 기본 시스템 글꼴을 오버라이드 (override) : 나는 NSAttributedString은으로 내 HTML 문자열을 변환하려면 다음 방법을 사용합니다. 그래서 속성으로 글꼴을 추가하는 시도 :
func setHTMLFromString() -> NSAttributedString{
let attrStr = try! NSMutableAttributedString(
data: self.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!,
options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil)
if #available(iOS 8.2, *) {
attrStr.addAttributes([NSFontAttributeName : UIFont.systemFontOfSize(16.0, weight: UIFontWeightThin),
NSForegroundColorAttributeName: UIColor(rgb: 0x555555)], range: NSMakeRange(0, attrStr.length))
} else {
attrStr.addAttributes([NSFontAttributeName : UIFont.systemFontOfSize(16.0),
NSForegroundColorAttributeName: UIColor(rgb: 0x555555)], range: NSMakeRange(0, attrStr.length))
}
return attrStr
}
지금 내가 제대로 보여 않습니다 표시 할 글꼴은, 그러나 모든 HTML 태그가 작동을 멈췄습니다. 누구나 글꼴을 설정하고 HTML 태그를 계속 작동시키는 방법에 대한 해결책이 있습니까?
CSS를 가져온 HTML에 포함시킬 수 있어야하지만 "더티"로 느껴질 수 있습니다. 안드로이드에서와 같이 모든 작업을하는 네이티브 HTML 클래스가있는 것처럼 더 좋고/더 쉬운 방법이 없다면 정말 궁금 할 것입니다. 나는이 주제를 약간 기다릴 것이고, 다른 대답이 주어지지 않으면 트릭을하기 때문에이 대답을 받아 들일 것이다. – Hapeki
@Hapeki 완전히 "더러운"느낌에 동의합니다. 당신이 더 좋은 길을 찾으면 나는 흥미가있을 것입니다. –