Comment faire pivoter le texte pour UIButton
et UILabel
? 90 degrés, 180 degrés
Merci
Comment faire pivoter le texte pour UIButton
et UILabel
? 90 degrés, 180 degrés
Merci
Je sais que cette question a déjà beaucoup de réponses, mais j'ai voulu donner une réponse alternative.
Au lieu de la rotation de l' UILabel
, vous pouvez faire pivoter le texte dans l'étiquette en dérivant une sous-classe de UILabel
et primordial, drawRect
. Si vous êtes en utilisant l'Interface Builder, vous pouvez spécifier la présente sous-classe, au lieu de UILabel
dans la Coutume de l'attribut de Classe de l'Identité de l'Inspecteur. Cela vous permettra de construire votre INTERFACE utilisateur avec XIBs, au lieu de par programme de création d'étiquettes. La seule réserve étant que le texte dans Interface Builder affiche horizontalement. Toutefois, il sera rendu à la verticale dans l'application elle-même.
#import "RotatedLabel.h"
@implementation RotatedLabel
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGContextRotateCTM(context, -(M_PI/2));
UIFont* systemFont17 = [UIFont systemFontOfSize:17.0];
CGSize textSize = [self.text sizeWithFont:systemFont17];
CGFloat middle = (self.bounds.size.width - textSize.height) / 2;
[self.text drawAtPoint:CGPointMake(-self.bounds.size.height, middle) withFont:systemFont17];
CGContextRestoreGState(context);
}
@end
Tu fais comme ça,
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 50, 70)];
label.numberOfLines = 2;
label.text = @"text";
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
label.highlightedTextColor = [UIColor blackColor];
label.textAlignment = UITextAlignmentLeft;
label.font = [UIFont systemFontOfSize:12];
//rotate label in 45 degrees
label.transform = CGAffineTransformMakeRotation( M_PI/4 );
[self addSubview:label];
[label release];
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.