2017-04-26 4 views
0

Y at-il un moyen d'obtenir le NSParagraphStyle d'un UILabel au lieu de créer une nouvelle instance et les paramètres de chaque attribut?Obtenir NSParagraphStyle de UILabel

+0

S'il a un 'attributText', vous pouvez énumérer et récupérer le premier trouvé. – Larme

+0

Énumérer quoi? –

+1

énumère le 'NSParagraphAttributeName' du attributTexte. – Larme

Répondre

1

Vous pouvez utiliser enumerateAttribute:inRange:options:usingBlock: pour récupérer le NSParagraphStyle sur la propriété attributedText de votre objet UILabel:

NSAttributedString *attributedString = myLabel.attributedText; 

[attributedString enumerateAttribute:NSParagraphStyleAttributeName 
          inRange:NSMakeRange(0, attributedString.length) 
          options:0 
          usingBlock:^(id value, NSRange range, BOOL *stop) { 

         NSParagraphStyle *paragraphStyle = value; // Do what you want with paragraph 
}]; 

Le code n'a pas été testé (peut ne pas compiler en raison d'une petite erreur), mais il devrait vous donner la idée derrière.

+0

Pour une raison quelconque, 'value' est toujours' nil'. Aussi, je voulais d'abord le récupérer à partir d'un 'UILabel' qui n'a pas de' attributText'. –

+0

Pourquoi avez-vous modifié mon code sans raison? Surtout avec une modification qui ne cause pas de problème (syntaxe point vs "carré un"), et vous ne pouvez pas mettre 'NSParagraphStyle' comme argument de la méthode, c'est un NSString qui doit être là' NSParagraphStyleAttributeName', pas une classe prénom. – Larme

+0

Parce que 'longueur' est une propriété, pas une méthode, et est plus lisible de cette façon. Les autres modifications sont dues au fait que le code n'a pas été compilé et que 'NSParagraphStyle' était une erreur. –