Tengo un UILabel. Necesito rotar mediante programación.

Tengo mis horizontal UILabel, por ejemplo, con marco: x:0, y:0, w: 200, h:80.

Ahora me gustaría girar la etiqueta para hacerla vertical:
Trato de este código:

 [self setTransform:CGAffineTransformMakeRotation(M_PI_2 / 2)];

Puedo ver el contenido de texto rotado. Pero me gustaría girar el cuerpo entero: Con mi código, el UILabel sigue teniendo el mismo marco.

Warning: If this property is not the identity transform, the value of the frame property is undefined and therefore should be ignored. De la doc de la transform propiedad de UIView

OriginalEl autor Safari | 2014-08-26

3 Comentarios

  1. 24

    Probar este código de trabajo:

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 200, 80)];
    //set background color to see if the frame is rotated
    [label setBackgroundColor:[UIColor redColor]];
    [label setText:@"Text Here"];
    label.transform=CGAffineTransformMakeRotation( ( 90 * M_PI ) / 180 );
    [self.view addSubview:label];

    Espero que ayude

    OriginalEl autor

  2. 3

    Si prefiere establecer la etiqueta de la posición y el tamaño visualmente en que xib o storyboard hacer lo siguiente:

    1. Conjunto de las etiquetas de posición y tamaño en el interface builder como usted desea permanecer después de la rotación.

    2. Girar la etiqueta y establecer el marco de nuevo:

      -(void)rotateLabel:(UILabel*) label
      {
          CGRect orig = label.frame;
          label.transform=CGAffineTransformMakeRotation(M_PI * 3/2);//270º
          label.frame = orig;
      }

    OriginalEl autor

  3. 0

    Su Etiqueta es un cuadrado(w:100,h:100).Así que la etiqueta se ha transformado, pero usted no puede ver el cambio,debido a que el ancho es igual a la altura.

    ok lo siento…me informaron mal H y W: Se puede suponer que la UILabel es 200×80

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here