UILabel의 글꼴 크기와 글꼴 이름을 어떻게 얻을 수 있습니까?


105

Interface Builder로 글꼴 크기와 글꼴 이름을 설정 한 UILabel이 있습니다. 이제 ViewController에서 두 값을 모두 읽어야합니다.

어떻게 할 수 있습니까?


이 메서드는 iOS7에서 더 이상 사용되지 않습니다.이 기사를 살펴보십시오. stackoverflow.com/questions/19128797/…
Maria

답변:


254

뷰 컨트롤러의 .h 파일에 속성을 추가합니다.

@property (nonatomic, retain) IBOutlet UILabel *label;

Interface Builder의 "File 's Owner"아울렛에서이 IBOutlet에 레이블을 연결합니다. ARC를 사용하지 않는 경우 -dealloc에서 해제해야합니다.

- (void)dealloc
{
    [self.label release];
    [super dealloc];
}

그런 다음 글꼴 이름과 크기를 얻으려면

NSString *fontName = self.label.font.fontName;
CGFloat fontSize = self.label.font.pointSize;

3
작동하지 않습니다. 텍스트를 쓸 수 있지만 fontName 및 pointSize는 null입니다.
Tim

레이블의 텍스트를 프로그래밍 방식으로 변경할 수 있지만 fontName 및 pointSize에 액세스 할 수 없다는 의미입니까? 레이블에 대한 인스턴스 변수를 만드는 것을 언급하지 않았기 때문에 레이블 대신 self.label을 포함하도록 위의 답변을 편집했습니다.
Ned

또한 인터페이스 빌더의 레이블을 File 's Owner (뷰 컨트롤러)에서 만든 IBOutlet과 연결했는지 확인하십시오.
Ned

2
아, IB에서 파일 소유자와의 연결을 잊었습니다.
Tim

29

빠른:

var currentFontSize = button.titleLabel?.font.pointSize

15

Pointsize 값은 UIFont 크기 속성에 사용 된 글꼴 크기가 아닙니다. 인터페이스 빌더 글꼴 크기를 14로 설정하고 pointSize를 인쇄하면 11 개만 표시됩니다.


지금 일하는 것 같습니다. 인터페이스 빌더 / 스토리 보드 편집기에서 라벨의 글꼴 크기를 17로 설정하면 ... 17을 myLabel.font.pointSize반환합니다.
Derek Soike

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.