2017-03-26 5 views
1

と私は、サーバーからHTMLテキストを取得し、このコードセット・ラベルのテキストNSAttributedStringフォント

let about = try! NSAttributedString(
        data: (myHTMLText as! String).data(using: String.Encoding.unicode, allowLossyConversion: true)!, 
        options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], 
        documentAttributes: nil) 
self.aboutLabel.attributedText = about 

が、私のラベルのフォントは、フォントをデフォルトに変更され、これを実行した後でラベルに設定しようとしています。どのようにして、フォントのラベルを付けることができますか?

+0

HTML文字列は、任意のフォントスタイルを定義していますか? – ozgur

+0

いいえ@ozgur –

+0

Do: '' \ n \ n ".appendingString(myHTMLText)'それを 'NSAttributedString'に変換します。パラグラフタグ内のものは、指定されたフォントを使用します。 – Brandon

答えて

0

私は以下を使用し、段落のスタイリングには問題ありません。テキスト全体をスタイルする場合は、代わりにbodyタグを使用してください。結果としてNSAttributedStringが正しいフォントでスタイルされていることがわかります。

//: Playground - noun: a place where people can play 

import UIKit 

extension UIFont { 
    class func printFontNames() { 
     for family in UIFont.familyNames { 
      let fonts = UIFont.fontNames(forFamilyName: family) 

      print("Family: ", family, "Font Names: ", fonts) 
     } 
    } 
} 

UIFont.printFontNames() 


let paragraphFont = "AvenirNextCondensed-Medium" 
let paragraphSize = 12.0 
let defaultFont = "Helvetica-Bold" 
let defaultSize = 15.0 

let htmlStyle = "<style>p {font-family:\(paragraphFont); font-size:\(paragraphSize)px;} body {font-family:\(defaultFont); font-size:\(defaultSize)px;}}</style>" 

let htmlText = "<p>Some Paragraph..</p> Some other text" 
let htmlString = "\(htmlStyle)\n\n\(htmlText)" 

let html = try! NSAttributedString(data: htmlString.data(using: .utf8)!, options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil) 

print(html) 

、結果は次のとおりです。

Family: Avenir Next Condensed 
Font Names: ["AvenirNextCondensed-BoldItalic", "AvenirNextCondensed-Heavy", "AvenirNextCondensed-Medium", "AvenirNextCondensed-Regular", "AvenirNextCondensed-HeavyItalic", "AvenirNextCondensed-MediumItalic", "AvenirNextCondensed-Italic", "AvenirNextCondensed-UltraLightItalic", "AvenirNextCondensed-UltraLight", "AvenirNextCondensed-DemiBold", "AvenirNextCondensed-Bold", "AvenirNextCondensed-DemiBoldItalic"] 

Some Paragraph.. 
{ 
    NSColor = "kCGColorSpaceModelRGB 0 0 0 1 "; 
    NSFont = "<UICTFont: 0x7fbd5c706c20> font-family: \"AvenirNextCondensed-Medium\"; font-weight: normal; font-style: normal; font-size: 12.00pt"; 
    NSKern = 0; 
    NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 12, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 17/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n), DefaultTabInterval 36, Blocks (\n), Lists (\n), BaseWritingDirection 0, HyphenationFactor 0, TighteningForTruncation NO, HeaderLevel 0"; 
    NSStrokeColor = "kCGColorSpaceModelRGB 0 0 0 1 "; 
    NSStrokeWidth = 0; 
}Some other text{ 
    NSColor = "kCGColorSpaceModelRGB 0 0 0 1 "; 
    NSFont = "<UICTFont: 0x7fbd5f203bf0> font-family: \"Helvetica\"; font-weight: bold; font-style: normal; font-size: 15.00pt"; 
    NSKern = 0; 
    NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 19/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n), DefaultTabInterval 36, Blocks (\n), Lists (\n), BaseWritingDirection 0, HyphenationFactor 0, TighteningForTruncation NO, HeaderLevel 0"; 
    NSStrokeColor = "kCGColorSpaceModelRGB 0 0 0 1 "; 
    NSStrokeWidth = 0; 
} 
+0

ありがとうございました。しかし、今私は大胆なテキストを持っていないし、すべては定期的です –

関連する問題