iOS/Swift + Objective-c

[objective c] custom font 사용하기

안경 쓴 귀니 2018. 3. 12. 19:37
반응형


[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 appearancesetFont:[UIFont fontWithName:@"NanumMyeongjo" size:17.0]];

}




4. 적용방법


            [patternDesign setTextFont:[UIFont fontWithName:@"NanumMyeongjo" size:1]];


반응형