web-dev-qa-db-fra.com

Comment définir la taille de la police sur NSAttributedString

Edit - Cela a été marqué comme un doublon, mais comme je le dis ci-dessous, je cherche une solution Swift. Tout ce que j'ai trouvé est écrit en Objectif C.

J'essaie de convertir le code HTML en chaîne NSAttributedString, mais je ne vois pas comment définir le style et la taille de la police. Tous les exemples sont dans l’objectif C, pour lesquels je n’ai pas de compétences. Comment définir le style et la taille de la police sur System 15 (à titre d’exemple)

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
    }

EDIT ...... J'ai essayé plusieurs méthodes. Je n'arrive pas à le faire marcher. Je reçois maintenant un message d'erreur: Le type d'expression est ambigu sans plus de contexte. Il pointe vers le NSAttributedString J'ai essayé ce qui suit:

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)
12
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

Police de caractère

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

Ombre

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

Souligné

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

Couleur du texte

 let myAttribute = [ NSForegroundColorAttributeName: UIColor.blue ]

Couleur BackGroud

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

Swift 4 Vous pouvez utiliser: 

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

Vous devez d’abord convertir les données en chaîne, puis utiliser ce morceau de code.

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

vous pouvez définir cette façon

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