반응형
Objective-C에서 UIButton 및 UILabel의 텍스트를 어떻게 회전 할 수 있습니까?
UIButton
및에 대한 텍스트를 어떻게 회전 할 수 UILabel
있습니까? 90도, 180도.
[*yourlabelname* setTransform:CGAffineTransformMakeRotation(-M_PI / 2)];
회전 된 이미지
투과 이미지
이 시도:
lbl.transform= CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(270));
대체 응답을 제공하고 싶었습니다.
를 회전하는 대신 에서 하위 클래스를 파생 하고 재정 의하여 레이블 내의UILabel
텍스트를 회전 할 수 있습니다 . Interface Builder를 사용 하는 경우 Identity Inspector의 Custom Class 속성 대신이 하위 클래스를 지정할 수 있습니다 . 이렇게하면 프로그래밍 방식으로 레이블을 생성하는 대신 XIB로 UI를 구축 할 수 있습니다. 유일한 주의점은 Interface Builder의 텍스트가 가로로 표시된다는 것입니다. 그러나 앱 자체에서는 세로로 렌더링됩니다.UILabel
drawRect
UILabel
#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));
반응형
'code' 카테고리의 다른 글
스몰 토크의 특징 (0) | 2020.11.06 |
---|---|
Android에서 새 연락처를 추가하는 방법 (0) | 2020.11.06 |
Android Edittext에서 프로그래밍 방식으로 drawableRight를 설정하는 방법은 무엇입니까? (0) | 2020.11.06 |
아무것도하지 않는 HTML 링크 만들기 (말 그대로 아무것도하지 않음) (0) | 2020.11.06 |
jQuery를 사용하여 알파벳순으로 옵션 요소 정렬 (0) | 2020.11.06 |