[objective c] custom font 사용하기
[iOS: objective - c] framework & library 에서 custom font 사용하기
1. 커스텀 폰트를 프로젝트에 추가한다
2. info.plist 추가
3.
-(void) addCustomFont {
NSBundle *frameworkBundle = [NSBundle bundleForClass:[self class]];
NSString *fontPath = [frameworkBundle pathForResource:@"NanumMyeongjo" ofType:@"ttf"];
NSData *inData = [NSData dataWithContentsOfFile:fontPath];
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"%s Failed to load font: %@", __FUNCTION__, errorDescription);
CFRelease(errorDescription);
}
fontPath = [frameworkBundle pathForResource:@"NanumMyeongjoBold" ofType:@"ttf"];
inData = [NSData dataWithContentsOfFile:fontPath];
provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"%s Failed to load font: %@", __FUNCTION__, errorDescription);
CFRelease(errorDescription);
}
fontPath = [frameworkBundle pathForResource:@"NanumMyeongjoExtraBold" ofType:@"ttf"];
inData = [NSData dataWithContentsOfFile:fontPath];
provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"%s Failed to load font: %@", __FUNCTION__, errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
NSArray *fontFamilies = [UIFont familyNames];
for (int i = 0; i < [fontFamilies count]; i++) {
NSString *fontFamily = [fontFamilies objectAtIndex:i];
NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]];
NSLog (@"%s font== : %@: %@", __FUNCTION__, fontFamily, fontNames);
}
//
// NSArray *Array = [_labelTitleSize, _labelContentRegistSize, _labelContentAuthSize];
// for (UILabel *label in Array) {
// label.font = [UIFont fontWithName:@"NanumMyeongjo" size:15];
// }
// 모든 라벨에 적용되는데, 사이즈가 같음...
[[UILabel appearance] setFont:[UIFont fontWithName:@"NanumMyeongjo" size:17.0]];
}
4. 적용방법
[patternDesign setTextFont:[UIFont fontWithName:@"NanumMyeongjo" size:1]];