カスタムフォントから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
? イベントプレビューがMacにインストールされたSAP-icons
のフォント文字ではありません - それらはすべてquestion marks
です!
char *iconUnicodeStr = "";
NSString *infoIconString = [NSString stringWithCString: iconUnicode encoding:(NSUnicodeStringEncoding)];
特定のフォントを適用してテキストを設定します。結果 - 不正なシンボル。
[self.button.titleLabel setFont:font];
[self.button.titleLabel setTitle:infoIconString];
どうすればいいですか?
info.plistにも追加しましたか? –
はい、.plistファイルにフォント名が追加され、正しく読み込まれました。 – Dmitry
あなたは 'SAP-icons.ttf'という名前を与えており、コードに@" SAP_icons "を書いています。確信が持てない、名前**( - と_)**がある可能性があります。 –