47 votes

aligner le texte en utilisant drawInRect: withAttributes:

Dans l'iOS 5 version de mon application, j'ai eu:

[self.text drawInRect: stringRect
             withFont: [UIFont fontWithName: @"Courier" size: kCellFontSize]
        lineBreakMode: NSLineBreakByTruncatingTail
            alignment: NSTextAlignmentRight];

Je me suis mise à niveau pour iOS 7. La méthode ci-dessus est obsolète. Je suis maintenant à l'aide de drawInRect:withAttributes:. Les attributs paramètre est un NSDictionary objet. Je peux obtenir drawInRect:withAttributes: travailler pour l'ex - police paramètre à l'aide de ceci:

      UIFont *font = [UIFont fontWithName: @"Courier" size: kCellFontSize];

      NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys: font, NSFontAttributeName,
                                  nil];

      [self.text drawInRect: stringRect
             withAttributes: dictionary];

Ce que les paires clé-valeur dois-je ajouter au dictionnaire pour obtenir NSLineBreakByTruncatingTail et NSTextAlignmentRight?

140voto

Hejazi Points 5981

Il est l'une des clés pour définir le style de paragraphe du texte (y compris le saut de ligne mode, l'alignement du texte et plus).

De docs:

NSParagraphStyleAttributeName

La valeur de cet attribut est une NSParagraphStyle objet. Utilisez cet attribut pour appliquer plusieurs attributs à une plage de texte. Si vous ne spécifiez pas cet attribut, la chaîne utilise la valeur par défaut des attributs de paragraphe, tel qu'il est renvoyé par l' defaultParagraphStyle méthode de NSParagraphStyle.

Donc, vous pouvez essayer ce qui suit:

UIFont *font = [UIFont fontWithName:@"Courier" size:kCellFontSize];

/// Make a copy of the default paragraph style
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
/// Set line break mode
paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;
/// Set text alignment
paragraphStyle.alignment = NSTextAlignmentRight;

NSDictionary *attributes = @{ NSFontAttributeName: font,
                    NSParagraphStyleAttributeName: paragraphStyle };

[text drawInRect:rect withAttributes:attributes];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X