xcodeの私のアプリには、いくつかの製品データを含むテーブルビューがあります。私の製品の1つには、名前に上付き文字eが含まれています。次のような文字列で上付き文字を使用するにはどうすればよいですか:text e
数字で動作させることができます:text \ u2070-> text0またはtext\u2071-> text1。しかし、他のキャラクターでこれを行う方法は?
どうも!
xcodeの私のアプリには、いくつかの製品データを含むテーブルビューがあります。私の製品の1つには、名前に上付き文字eが含まれています。次のような文字列で上付き文字を使用するにはどうすればよいですか:text e
数字で動作させることができます:text \ u2070-> text0またはtext\u2071-> text1。しかし、他のキャラクターでこれを行う方法は?
どうも!
tl; dr:NSStringはスーパー/サブスクリプトの概念をサポートしていません。それは多かれ少なかれUIフォーマットの問題です。
考えられる解決策の1つは、インターフェイスビルダーではなくコードにUILabelを動的に追加することです。フォントサイズが小さい2番目のUILabelを追加できます。
CoreTextフレームワークを追加し、CoreText.hをインポートし、UIlabel.attributedTextを使用します。NSAttributedStringを完全にサポートしています。すでにSOについて繰り返し質問と回答がありました。
SubScriptの場合、kCTSuperscriptAttributeNameの値を@-1として使用します。
ドキュメントによると
@discussion値はCFNumberRefである必要があります。デフォルトはint値0です。指定されたフォントでサポートされている場合、値1は上付きを有効にし、値-1は下付きを有効にします。
extern const CFStringRef kCTSuperscriptAttributeName CT_AVAILABLE(10_5、3_2);
Example- [lblHeader setText:@“Headers [Alpha1 – text”];
NSMutableAttributedString *headerSubscript = [[NSMutableAttributedString alloc]initWithAttributedString: lblHeader.attributedText];
[headerSubscript addAttribute:(NSString *)kCTSuperscriptAttributeName value:@-1 range:NSMakeRange(14,1)];
[lblHeader setAttributedText:headerSubscript];