我試圖從自定義字體中顯示SAP圖標(請參閱附件鏈接)。我已將自定義字體SAP-icons.ttf
添加到項目中(它包含在軟件包中並正確加載,雙重檢查),但我無法加載正確的符號。無法從「SAP-icons.ttf」字體中加載特定圖標
我使用的代碼片段如下:
獲取字體的路徑。它存儲在特定的包中。使用CGDataProvider獲取參考。
NSString *fontPath = [[NSBundle my_currentBundle] pathForResource:@"SAP-icons" ofType:@"ttf"];
CGDataProviderRef provider = CGDataProviderCreateWithFilename([fontPath UTF8String]);
CGFontRef fontRef = CGFontCreateWithDataProvider(provider);
CFErrorRef error = nil;
if (! CTFontManagerRegisterGraphicsFont(fontRef, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error);
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
獲取字體名稱並創建UIFont對象。
NSString *fontName = (NSString *)CFBridgingRelease(CGFontCopyPostScriptName(fontRef));
UIFont *font = [UIFont fontWithName:fontName size:20];
CFRelease(fontRef);
CFRelease(provider);
對於所需的圖標,我發現在網站
引用的unicode與下面的鏈接: https://sapui5.hana.ondemand.com/iconExplorer.html#/?tab=grid&search=info&icon=message-information
如果
Unicode值是不正確的該圖標,我應該使用哪個? 我不能在我的Mac中安裝事件預覽SAP-icons
字體字符 - 全部都是question marks
!
char *iconUnicodeStr = "";
NSString *infoIconString = [NSString stringWithCString: iconUnicode encoding:(NSUnicodeStringEncoding)];
應用特定的字體,設置文本。結果 - 不正確的符號。
[self.button.titleLabel setFont:font];
[self.button.titleLabel setTitle:infoIconString];
在此先感謝您的任何幫助和建議,我怎麼能這樣做!取而代之的
char *iconUnicodeStr = "U+xe202";
label.text = [NSString stringWithCString:iconUnicodeStr encoding:(NSUnicodeStringEncoding)];
您是否在info.plist中添加了? –
是的,字體名稱添加在.plist文件中並正確加載。 – Dmitry
您已給出名稱「SAP-icons.ttf」,並且您正在編寫代碼中的「SAP_icons」。不知道,可能是名稱**( - 和_)**問題。 –