2010-10-19 11 views
9

Tôi đang sử dụng phông chữ tùy chỉnh được áp dụng cho CATextLayer. Tôi đang sử dụng hướng dẫn và mã mẫu tìm thấy ở đây. http://www.freetimestudios.com/2010/09/13/custom-fonts-on-the-ipad-and-ios-4/CoreText: Không hợp lệ 'kern' Subtable Trong CTFont

Tuy nhiên, thường xuyên như vậy, tôi gặp phải lỗi sau. Không có gì đặc biệt dường như kích hoạt nó. Ai đó có thể làm sáng tỏ điều này nghĩa là gì? Những gì để kiểm tra?

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"} 

Tôi tải phông chữ bằng cách sử dụng mã sau. Mã này được lấy từ dự án trong liên kết ở trên.

- (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; 
} 

Trả lời

4

Xác thực phông chữ được cài đặt cho thấy có sự cố với giá trị "kern" của phông chữ. Đây là những gì đã gây ra vấn đề.

+0

Vì vậy, quá trình xác thực có khắc phục được không? – Ralphleon

+2

@Ralphleon Không có. Tôi phải tải xuống phông chữ từ một trang web khác, xác thực và đảm bảo rằng nó là tốt. Các kern tôi tin rằng đã làm với khoảng cách, đôi khi là một vấn đề với một phông chữ tùy chỉnh. –

+4

Tôi gặp sự cố này. Ngoại trừ các xác thực vượt qua. Tôi đang sử dụng OpenSans bằng cách này ... bất cứ ai biết làm thế nào để sửa lỗi này? – bogardon

9

Tôi đã gặp vấn đề tương tự và giải pháp là tôi đang sử dụng tập con sai. Ban đầu tôi tải xuống Open Sans từ Google Fonts gây ra lỗi tương tự như trên. Tôi đã tải xuống Open Sans từ Font Squirrel bằng tập hợp con MacRoman và đã sửa lỗi của tôi.

+0

Làm việc cho tôi, phải đảm bảo làm sạch sản phẩm trước. –

Các vấn đề liên quan