2010-10-19 11 views
9

Używam niestandardowej czcionki zastosowanej do CATextLayer. Używam samouczka i przykładowy kod znaleziony tutaj. http://www.freetimestudios.com/2010/09/13/custom-fonts-on-the-ipad-and-ios-4/CoreText: Niepoprawna pod-tabela "kern" w CTFont

Jednak, co jakiś czas, pojawia się następujący błąd. Nic w szczególny sposób nie wyzwala tego. Czy ktoś może rzucić trochę światła na to, co to oznacza? Co sprawdzić?

CoreText: Invalid 'kern' Subtable In CTFont <name: Intellect, size: 20.000000, matrix: 0x0> 
CTFontDescriptor <attributes: <CFDictionary 0xac07a80 [0x38295d98]>{type = mutable, count = 1, capacity = 3, pairs = (
    0 : <CFString 0x3833f750 [0x38295d98]>{contents = "NSFontNameAttribute"} = <CFString 0x159af0 [0x38295d98]>{contents = "Intellect"} 

Ładowanie czcionki przy użyciu następującego kodu. Ten kod pochodzi z projektu w powyższym linku.

- (CTFontRef)newCustomFontWithName:(NSString *)fontName 
          ofType:(NSString *)type 
         attributes:(NSDictionary *)attributes 
{ 
    NSString *fontPath = [[NSBundle mainBundle] pathForResource:fontName ofType:type]; 

    NSData *data = [[NSData alloc] initWithContentsOfFile:fontPath]; 
    CGDataProviderRef fontProvider = CGDataProviderCreateWithCFData((CFDataRef)data); 
    [data release]; 

    CGFontRef cgFont = CGFontCreateWithDataProvider(fontProvider); 
    CGDataProviderRelease(fontProvider); 

    CTFontDescriptorRef fontDescriptor = CTFontDescriptorCreateWithAttributes((CFDictionaryRef)attributes); 
    CTFontRef font = CTFontCreateWithGraphicsFont(cgFont, 0, NULL, fontDescriptor); 
    CFRelease(fontDescriptor); 
    CGFontRelease(cgFont); 
    return font; 
} 

Odpowiedz

4

Sprawdzanie poprawności zainstalowanej czcionki wykazało, że wystąpił problem z wartościami "kern" czcionek. To właśnie spowodowało problem.

+0

Czy weryfikacja została naprawiona? – Ralphleon

+2

@Ralphleon Nie, nie. Musiałem pobrać czcionkę z innej witryny, sprawdzić poprawność i upewnić się, że wszystko było w porządku. Kern, jak sądzę, ma do czynienia z odstępami, czasem problemem z niestandardową czcionką. –

+4

Mam ten problem. Oprócz sprawdzania poprawności. Używam OpenSans przy okazji ... ktoś wie jak to naprawić? – bogardon

9

Miałem ten sam problem, a rozwiązanie polegało na tym, że korzystałem z niewłaściwego podzbioru. Początkowo pobrałem Open Sans z Google Fonts, co spowodowało taki sam błąd jak powyżej. Pobrałem Open Sans z Font Squirrel używając podzestawu MacRoman i to naprawiło mój błąd.

+0

Pracowałem dla mnie, musiałem także najpierw wyczyścić produkt. –

Powiązane problemy