Gyp*_*psa 168

[*yourlabelname* setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];
Run Code Online (Sandbox Code Playgroud)

旋转图像 在此输入图像描述

透视图像 在此输入图像描述

  • 只是一个小评论; 与"M_PI"一起,您可以访问"M_PI_2"("pi/2")和"M_PI_4"("pi/4"),因此您可以使用它们. (7认同)

Div*_*ert 33

试试这个:

lbl.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270));
Run Code Online (Sandbox Code Playgroud)

  • #define DEGREES_TO_RADIANS(x)(M_PI*x/180.0) (13认同)
  • CGAffineTransformMakeRotation( - M_PI_2); (6认同)

And*_*y S 11

我想提供另一种回应.

UILabel您可以通过从子类中获取子类来覆盖标签的文本,而不是旋转它.如果您使用的是Interface Builder,则可以指定此子类,而不是Identity Inspector的Custom Class属性.这将允许您使用XIB构建UI,而不是以编程方式创建标签.唯一需要注意的是Interface Builder中的文本将水平显示.但是,它将在应用程序本身中垂直呈现.UILabeldrawRectUILabel

#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
Run Code Online (Sandbox Code Playgroud)