objective C: Как вы можете повернуть текст для UIButton и UILabel?

Как вы можете повернуть текст для UIButton и UILabel ? 90 gradleусов, 180 gradleусов

благодаря

 [*yourlabelname* setTransform:CGAffineTransformMakeRotation(-M_PI / 2)]; 

повернутое изображение введите описание изображения здесь

проницаемое изображение введите описание изображения здесь

Попробуй это:

 lbl.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270)); 

Я знаю, что у этого вопроса уже много ответов, но я хотел бы дать альтернативный ответ.

Вместо того, чтобы вращать UILabel , вы можете повернуть текст внутри метки, выведя подclass из UILabel и переопределив drawRect . Если вы используете Interface Builder, вы можете указать этот подclass вместо UILabel в UILabel Custom Class для Identity Inspector. Это позволит вам создавать свой пользовательский интерфейс с помощью XIB, а не программно создавать ярлыки. Единственное предостережение в том, что текст в 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); 
 lbl.transform=CGAffineTransformMakeRotation(M_PI); //Go back lbl.transform=CGAffineTransformMakeRotation(0); 
 //Right To Left lable.transform = CGAffineTransformMakeRotation (3.14/2); //Left To Right [lable setTransform:CGAffineTransformMakeRotation(-M_PI / 2)]; 

ИЛИ

 lable.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270)); 
  • Данные перезагрузки UITableView
  • Легкий способ убрать клавиатуру?
  • UIScrollView: подкачка по горизонтали, прокрутка по вертикали?
  • Open Source Cocoa / Cocoa-Touch POP3 / SMTP библиотека?
  • iOS 5 не позволяет сохранять загруженные данные в папке «Документы»?
  • iOS: конвертировать UTC NSDate в локальный часовой пояс
  • Что мне нужно сделать, чтобы заставить Core Data автоматически переносить модели?
  • Есть ли документальный способ настройки ориентации iPhone?
  • Соглашение об именах iPhone ivar
  • Core-Data iPhone: не удалось найти NSManagedObjectModel
  • Получить текущего первого ответчика без использования частного API
  • Давайте будем гением компьютера.