2017-03-17 2 views
0

J'ai un fichier UILabel sur xib et je veux augmenter l'interlignage des textes.NSMutableParagraphStyle n'est pas appelé

J'ai essayé d'écrire, mais avec le code ci-dessous, seul l'alignement du texte est appelé et l'interligne reste le même. Pourquoi "paragraphStyle.lineSpacing" n'est pas appelé?

class PlaySheetCellLeft: UITableViewCell { 

     @IBOutlet var LBLTitle:UILabel! 


    var message:[String:Any]? { 
      didSet{ 
       guard let msg = self.message else { return } 
       self.LBLTitle.text = title 
      } 

override func awakeFromNib() { 
    super.awakeFromNib() 

      let paragraphStyle = NSMutableParagraphStyle() 

      paragraphStyle.lineSpacing = 10 
      let attrString = NSMutableAttributedString() 
      attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range:NSMakeRange(0, attrString.length)) 
      LBLTitle.attributedText = attrString 
      LBLTitle.textAlignment = NSTextAlignment.center 

     } 
} 
+1

Votre programme a 4 '{' et 6 '}', et l'indentation est très trompeuse. Est-ce vraiment ce à quoi ressemble votre classe? – Ssswift

Répondre

0

Vous créez une plage avec une chaîne vide, donc le style n'est défini sur rien. Lorsque vous créez votre plage, vous créez une plage comme celle-ci: NSMakeRange(0, 0).

Vous devez passer votre chaîne dans la création de la chaîne attribué mutable comme ceci: NSMutableAttributedString(string: "your string")

Vous devez également définir cette option lorsque vous définissez le texte de votre étiquette, qui, par l'apparence de votre code ISN 't dans awakeFromNib

+0

Merci pour votre réponse. J'utilise un fichier plist pour modifier la chaîne attribuée. Par conséquent, quand je passe la chaîne toutes les étiquettes seront la même lettre. Une solution pour le problème? – rebecca87

+0

Oui, comme je l'ai dit, définissez la chaîne attribuée partout où vous définissez le texte du fichier plist. –

+0

Un grand merci! :) – rebecca87