旋转UIlabel使其垂直

Saf*_*ari 8 objective-c uilabel cgaffinetransform ios

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

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

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

 [self setTransform:CGAffineTransformMakeRotation(M_PI_2 / 2)];
Run Code Online (Sandbox Code Playgroud)

我可以看到旋转的包含文本.但我想旋转整个框架:使用我的代码,UILabel继续拥有相同的框架.

tny*_*lee 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];
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你


use*_*r23 6

如果您更喜欢在 xib 或故事板中直观地设置标签位置和大小,请执行以下操作:

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

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

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