2014년 2월 25일 화요일

[iOS] UIFont 예제

UIFont는 이름 그대로 폰트를 정의하는 클래스다. 수 많은 글자를 표시하는 UI 클래스에서 폰트를 명시하기 위해 사용하는 중요한 클래스이다.

일반적으로 간단히 UIFont 를 코드 레벨에서 생성 할 때는 systemFontOfSize: 를 이용해 간단히 생성해 낼 수 있다. 넘겨지는 사이즈는 포인트(pt) 단위이다. 쉽다.
UIFont *font = [UIFont systemFontOfSize:15];

하지만 디자이너가 원하는 폰트는 시스템폰트가 아니다. 디자이너들의 선호도가 높은 Helvetica Neue 폰트는 어떻게 생성해야 하는가. fontWithName:size: 를 이용 할 수 있다.
UIFont *font = [UIFont fontWithName:@"HelveticaNeue" size:15];
위 코드는 Helvetica Neue Regular 폰트 오브젝트를 생성하는 예제이다.

불행히도 폰트는 같은 이름이라고 해도 종류가 많다. Regular니 Light니 Medium 이니... 그렇다면 이에 해당하는 이름을 어떻게 지정해야 할 것인가. 다행히도 폰트 이름은 fontNamesForFamilyName: 를 통해 얻을 수 있다. 아래 코드는 폰트 이름을 로그로 출력하는 예제다.
NSArray *fonts = [UIFont fontNamesForFamilyName:@"Helvetica Neue"];
for (NSString *name in fonts) {
    NSLog(@"%@", name);
}

시뮬레이터에서 돌려보면 아래와 같은 식으로 결과가 나온다.
HelveticaNeue-BoldItalic
HelveticaNeue-Light
HelveticaNeue-UltraLightItalic
HelveticaNeue-CondensedBold
HelveticaNeue-MediumItalic
HelveticaNeue-Thin
HelveticaNeue-Medium
HelveticaNeue-ThinItalic
HelveticaNeue-LightItalic
HelveticaNeue-UltraLight
HelveticaNeue-Bold
HelveticaNeue
HelveticaNeue-CondensedBlack

이름을 얻었으니 이걸로 폰트 오브젝트를 생성 할 수 있다. 예를 들어 Helvetica Neue Medium 15pt 라면 아래와 같이 생성 할 수 있다.
UIFont *font = [UIFont fontWithName:@"HelveticaNeue-Medium" size:15];

iOS built-in 폰트라면 위 방식으로 모두 이용이 가능하다.

댓글 없음 :