2014-10-22 3 views
0

Xcode 프로젝트에 추가 한 사용자 정의 글꼴이 있습니다. 내가 글꼴을 추가 지시에 따라 모든 단계를 거쳤으며 내가 UILabel 또는 UITextField를 IB의 사용자 지정 글꼴로 설정하면 멋지게 작동하지만 사용자 정의 글꼴을 런타임에 설정하면 대신 iOS 기본 글꼴로 표시됩니다. UIAppFonts 목록을 확인한 후 전체 이름이 표시된 NSLog로 인쇄하게하여 [UIFont fontWithName : @ "font name"크기 : s]를 호출 할 때 올바른 이름임을 알 수 있습니다. 무엇이 문제 일 수 있습니까? IB에서 설정하면 사용자 정의 작성 글꼴이 올바르게 표시되지만 프로그래밍 방식으로 설정된 경우에는 표시되지 않습니다.

for (NSString* family in [UIFont familyNames]) { 
    NSLog(@"%@", family); 

    for (NSString* name in [UIFont fontNamesForFamilyName: family]) { 
     NSLog(@" %@", name); 
    } 
} 

당신이 글꼴 이름을 볼 수 있나요

:

NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary]; 
NSArray* fontFiles = [infoDict objectForKey:@"UIAppFonts"]; 

for (NSString *fontFile in fontFiles) { 
    NSURL *url = [[NSBundle mainBundle] URLForResource:fontFile withExtension:NULL]; 
    NSData *fontData = [NSData dataWithContentsOfURL:url]; 
    CGDataProviderRef fontDataProvider = CGDataProviderCreateWithCFData((__bridge CFDataRef)fontData); 
    CGFontRef loadedFont = CGFontCreateWithDataProvider(fontDataProvider); 
    NSString *fullName = CFBridgingRelease(CGFontCopyFullName(loadedFont)); 
    CGFontRelease(loadedFont); 
    CGDataProviderRelease(fontDataProvider); 
    NSLog(@"FULL NAME:%@",fullName); 
} 
+0

더 많은 정보가 없으면 말하기 어렵습니다. 변수의 인스턴스를 저장하고 디버거에서 객체를 검사합니다. 폰트 패밀리를 검사 할 때 그 시점에서 폰트가 올바르게 빌드되고 있습니까? –

+0

고마워요, 그 말이 사실이 아니고 실제로는 코드가 없습니다 : UIFont * font = [UIFont fontWithName : @ "font name"size : 24.0f]; – Silverstar

답변

1

이 코드를 실행하십시오 :

는 아래의 글꼴 이름을 찾는 방법 (이 방법은 사용자 정의 UIFont 인스턴스화에 사용하는 잘못된 이름을 제공) 너는 사용하려고 노력하고 있니?

+0

감사합니다 벤, 이름을 얻으려고 사용하는 코드가 잘못되어 따라서 UIFont을 인스턴스화 할 때 잘못된 이름을 적용하고있었습니다. 내 질문에 내가 사용했던 이전 코드를 포함하도록 편집 할 것이다. – Silverstar

관련 문제