我有一个UILabel。我需要以编程方式旋转它。
我有我的水平UILabel,例如框架:x:0, y:0, w: 200, h:80
。
现在我想旋转标签使其垂直: 我试试这段代码:
[self setTransform:CGAffineTransformMakeRotation(M_PI_2 / 2)];
我可以看到所包含的文字已旋转。但我想旋转整个框架:使用我的代码,UILabel继续具有相同的框架。
答案 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中直观地设置标签位置和大小,请执行以下操作:
在界面构建器中设置标签位置和大小,就像您希望它们在旋转后保持一样。
旋转标签并再次设置框架:
-(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)。所以你的标签已经变换了,但你看不到变化,因为宽度等于高度。