69 votes

Objectif C: Comment faire pivoter du texte pour UIButton et UILabel?

Comment faire pivoter le texte pour UIButton et UILabel ? 90 degrés, 180 degrés

Merci

168voto

Gypsa Points 7554
 [*yourlabelname* setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];
 

image tournée entrez la description de l'image ici

image perméable entrez la description de l'image ici

33voto

DivineDesert Points 4932

Essaye ça:

 lbl.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270));
 

11voto

Andy S Points 3975

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

4voto

EXC_BAD_ACCESS Points 1851

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];
 

1voto

Bhavesh Nai Points 1525
//Right To Left
lable.transform = CGAffineTransformMakeRotation (3.14/2);

//Left To Right
[lable setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];

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