web-dev-qa-db-ja.com

NSAttributedStringでフォントサイズを設定する方法

編集-これは重複としてマークされていますが、以下に述べるように、Swiftソリューションを探しています。私が見つけたものはすべてObjective Cで書かれています。

HTMLをNSAttributedStringに変換しようとしていますが、フォントのスタイルとサイズを設定する方法がわかりません。すべての例はObjective Cにありますが、これは私には不慣れです。フォントスタイル/サイズをSystem 15に設定するにはどうすればよいですか(例として)

private func stringFromHtml(string: String) -> NSAttributedString? {
        do {
            let data = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
            if let d = data {
                let str = try NSAttributedString(data: d,
                                                 options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],                                                  documentAttributes: nil)
                return str
            }
        } catch {
        }
        return nil
    }

編集......私はいくつかの方法を試しました。私はそれを動作させることができません。エラーメッセージが表示されるようになりました。式のタイプは、コンテキストがなくあいまいです。 NSAttributedStringを指しているので、次のことを試しました。

let myAttribute = [ NSForegroundColorAttributeName: UIColor.blue ]
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
  if let d = data {
     let str = try NSAttributedString(data: d,
                       attributes: myAttribute,
                       options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil)
22
Martin Muldoon
  let myString = "Swift Attributed String"
  let myAttribute = [ NSForegroundColorAttributeName: UIColor.blue ]
  let myAttrString = NSAttributedString(string: myString, attributes: myAttribute) 

  // set attributed text on a UILabel
  myLabel.attributedText = myAttrString

フォント

 let myAttribute = [ NSFontAttributeName: UIFont(name: "Chalkduster", size: 18.0)! ]

シャドウ

let myShadow = NSShadow()
myShadow.shadowBlurRadius = 3
myShadow.shadowOffset = CGSize(width: 3, height: 3)
myShadow.shadowColor = UIColor.gray
let myAttribute = [ NSShadowAttributeName: myShadow ]

下線

 let myAttribute = [ NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue ]

テキストカラー

 let myAttribute = [ NSForegroundColorAttributeName: UIColor.blue ]

背景色

  let myAttribute = [ NSBackgroundColorAttributeName: UIColor.yellow ]
31
Vikas Rajput

Swift 4次を使用できます。

 let stringWithAttribute = NSAttributedString(string: selectedFilter ?? "",
                                                  attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 14.0)])
12
Osman

最初にデータを文字列に変換してから、このコードを使用する必要があります

let  attributes = [
   NSForegroundColorAttributeName: UIColor.black,
            ]
try NSAttributedString(string: "", attributes: attributes)
1
Sakshi
var attrString = NSAttributedString(string: "labelText", attributes: [NSForegroundColorAttributeName: UIColor.red, NSFontAttributeName: UIFont(name: "system", size: 12)])
label.attributedText = attrString
1
iOS

この方法で設定できます

let attribute: [String : Any] = [NSFontAttributeName: UIFont.systemFont(ofSize: UIFont.systemFontSize, weight: UIFontWeightThin),
    NSForegroundColorAttributeName: UIColor.red]

let attributedText = NSAttributedString(string: "Your String", attributes: attribute)
0
Nirav Kotecha