我正在尝试从自定义字体显示SAP图标(请参阅附件的链接)。我已经为项目添加了自定义字体SAP-icons.ttf
(它包含在bundle中并正确加载,双重检查),但我无法加载正确的符号。
我使用的代码段如下:
获取字体的路径。它存储在特定的包中。使用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];
提前感谢您提供任何帮助和建议,我该怎么做!
答案 0 :(得分:1)
而不是
char *iconUnicodeStr = "U+xe202";
label.text = [NSString stringWithCString:iconUnicodeStr encoding:(NSUnicodeStringEncoding)];
使用
label.text = [NSString stringWithFormat:@"%C", (unichar)0xe202];
不要忘记设置标签的字体
label.font = myCustomFont;
答案 1 :(得分:0)
我确定问题在于字体名称。
$content = $request->getContent();
在AppDelegate didFinish上运行上面的代码并确保使用正确的字体名称。
从上面的代码中搜索NSLog中的SAP_icons。如果您没有找到正确的名称。
在上面的日志中搜索SAP,这将为您提供正确的名称。