Цель C: как вы можете повернуть текст для UIButton и UILabel?
Как вы можете повернуть текст для UIButton и UILabel? 90 градусов, 180 градусов
спасибо
7 ответов:
[*yourlabelname* setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];повернутое изображение
изображения пропускающей
Я знаю, что на этот вопрос уже есть много ответов, но я хотел бы дать альтернативный ответ.
поворотUILabel, вы можете повернуть текст внутри метка, производная подкласса отUILabelи переопределитьdrawRect. Если вы используете Interface Builder, вы можете указать этот подкласс вместоUILabelв атрибуте пользовательского класса инспектора удостоверений. Это позволит вам построить свой пользовательский интерфейс с помощью XIBs, а не программное создание меток. Единственное предостережение заключается в том, что текст в Interface Builder будет отображаться горизонтально. Тем не менее, он будет отображаться вертикально в самом приложении.#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
тебе нравится это,
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 50, 70)]; label.numberOfLines = 2; label.text = @"text"; label.backgroundColor = [UIColor clearColor]; label.textColor = [UIColor whiteColor]; label.highlightedTextColor = [UIColor blackColor]; label.textAlignment = UITextAlignmentLeft; label.font = [UIFont systemFontOfSize:12]; //rotate label in 45 degrees label.transform = CGAffineTransformMakeRotation( M_PI/4 ); [self addSubview:label]; [label release];
по моему опыту, фрейм UIView изменяется после применения преобразования, так что это то, что я использовал:
UILabel *l = [[UILabel alloc] initWithFrame:CGRectMake(x, 0, 28, 159)]; l.textAlignment = NSTextAlignmentRight; l.text = @"Hello!"; [_viewXAxisLabels addSubview:l]; [l setTransform:CGAffineTransformMakeRotation(-M_PI / 2)]; l.frame = CGRectMake(x, 0, 28, 159);

