2017-09-28 2 views
1

D'abord veux dire merci avant si cela peut être résolu .. J'ai aussi textview qui obtiennent les données avec tag html..so j'utilise attributeText et la fonction de rendre html ..il a fonctionné..mais j'ai besoin de changer la famille de police .. maintenant par défaut il "fois nouveau roman" je veux changer à "Helvetica" aucune idée? i utiliser l'extension pour cela:Swift 3 rendre textview en utilisant NSAttributedString, mais veulent changer la police par défaut

extension Data { 
var attributedString: NSAttributedString? { 
    do { 
     return try NSAttributedString(data: self, options:[NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: String.Encoding.utf8.rawValue], documentAttributes: nil) 
    } catch { 
     print(error) 
    } 
    return nil 
}} 

extension String { 
var data: Data { 
    return Data(utf8) 
}} 

alors je l'utilise avec:

cell.txtview.attributedText = contentText.data.attributedString 

cela a fonctionné, mais la valeur par défaut de la police deviennent "times new roman" je dois changer it..any idée? Je l'apprécie très avant. Merci!

enter image description here

J'essaie aussi déjà ce ... voir image ci-dessous

enter image description here

Répondre

0

Votre chaîne attribuée doit être comme ci-dessous:

utilisant this link

let data = "vini".data(using: .utf8) 

let attributedString = data!.attributedString 
let newAttributedString = NSMutableAttributedString(attributedString: (attributedString)!) 

newAttributedString.enumerateAttribute(NSFontAttributeName, in: NSMakeRange(0, (newAttributedString.length)), options: []) { value, range, stop in 
    guard let currentFont = value as? UIFont else { 
     return 
    } 

    let fontDescriptor = currentFont.fontDescriptor.addingAttributes([UIFontDescriptorFamilyAttribute: "Helvetica"]) 

    if let newFontDescriptor = fontDescriptor.matchingFontDescriptors(withMandatoryKeys: [UIFontDescriptorFamilyAttribute]).first { 
     let newFont = UIFont(descriptor: newFontDescriptor, size: currentFont.pointSize) 
      newAttributedString.addAttributes([NSFontAttributeName: newFont], range: range) 
     } 
    } 

    print(newAttributedString) 
+0

encore pas travaillé..J'ai déjà essayé ..je pense que devrait comme boucler le contenu puis le remplacer .. je ne peux pas trouver le chemin pour cela .. Merci .. merci! – user1400140

+0

Mise à jour de la réponse. Vérifiez s'il vous plaît. –

+0

C'est ça .. hehe ... j'ai aussi trouvé cette réponse aussi .. et cela a fonctionné ... désolé je veux juste taper et vous avez déjà répondu .. merci beaucoup @Vini App pour toute votre aide et votre soutien! tellement génial! – user1400140