iphone - color - menu ios
Objetivo C: ¿Cómo se puede rotar el texto para UIButton y UILabel? (7)
¿Cómo se puede rotar el texto para UIButton
y UILabel
? 90 grados, 180 grados
Gracias
En mi experiencia, el marco de UIView se cambia después de aplicar la transformación, así que esto es lo que he usado:
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(x, 0, 28, 159)];
l.textAlignment = NSTextAlignmentRight;
l.text = @"Hello!";
[_viewXAxisLabels addSubview:l];
[l setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];
l.frame = CGRectMake(x, 0, 28, 159);
Prueba esto:
lbl.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270));
Sé que esta pregunta ya tiene muchas respuestas, pero quería brindar una respuesta alternativa.
En lugar de rotar UILabel
, puede rotar el texto dentro de la etiqueta derivando una subclase de UILabel
y anulando drawRect
. Si está utilizando Interface Builder, puede especificar esta subclase en lugar de UILabel
en el atributo Custom Class del Identity Inspector. Esto le permitirá construir su UI con XIB, en lugar de crear las etiquetas mediante programación. La única advertencia es que el texto en Interface Builder se mostrará horizontalmente. Sin embargo, se representará verticalmente en la aplicación en sí.
#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
Te gusta esto,
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];
//Right To Left
lable.transform = CGAffineTransformMakeRotation (3.14/2);
//Left To Right
[lable setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];
O
lable.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270));
[*yourlabelname* setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];
imagen girada
imagen permeable
lbl.transform=CGAffineTransformMakeRotation(M_PI);
//Go back
lbl.transform=CGAffineTransformMakeRotation(0);