Я хотел предоставить альтернативный ответ.
Вместо поворота UILabel
, вы можете повернуть текст в пределах метки, получив подкласс из UILabel
и переопределив drawRect
.Если вы используете Interface Builder, вы можете указать этот подкласс вместо UILabel
в атрибуте Custom Class Identity Inspector.Это позволит вам создать свой пользовательский интерфейс с XIB вместо программного создания меток.Единственное предостережение в том, что текст в Интерфейсном Разработчике будет отображаться горизонтально.Тем не менее, оно будет отображаться вертикально в самом приложении.
#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