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
Répondre
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.
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'. –
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
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. –
S'il a un 'attributText', vous pouvez énumérer et récupérer le premier trouvé. – Larme
Énumérer quoi? –
énumère le 'NSParagraphAttributeName' du attributTexte. – Larme