旋转UIlabel使其垂直

时间:2014-08-26 10:20:37

标签: ios objective-c uilabel cgaffinetransform

我有一个UILabel。我需要以编程方式旋转它。

我有我的水平UILabel,例如框架:x:0, y:0, w: 200, h:80

现在我想旋转标签使其垂直: 我试试这段代码:

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

我可以看到所包含的文字已旋转。但我想旋转整个框架:使用我的代码,UILabel继续具有相同的框架。

3 个答案:

答案 0 :(得分:25)

试试这个有效的代码:

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

希望有所帮助

答案 1 :(得分:4)

如果您希望在xib或storyboard中直观地设置标签位置和大小,请执行以下操作:

  1. 在界面构建器中设置标签位置和大小,就像您希望它们在旋转后保持一样。

  2. 旋转标签并再次设置框架:

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

答案 2 :(得分:0)

你的标签是一个正方形(w:100,h:100)。所以你的标签已经变换了,但你看不到变化,因为宽度等于高度。