1

iOSでNSAttributedStringの悪名高いNSFontAttributeNameプロパティを設定しようとしていますが、機能していないようです。

  1. まず、iOS用に定義されたNS定数はないようです
  2. 代わりにCoreTextconstsを渡すことで、代わりに回避できることをどこかで読みました。結構です...しかし、それでも、属性はNSFontを想定しており、UIFontまたはCTFontRefでスタックしていますが、どちらも機能していないようです。

これは機能しません:

CTFontRef ctFont = CTFontCreateWithName((CFStringRef)[UIFont boldSystemFontOfSize:16].fontName, [UIFont boldSystemFontOfSize:16].pointSize, NULL);
[myAttString addAttribute:(NSString*)kCTFontNameAttribute
                          value:(id)ctFont
                          range:NSMakeRange(0, myAttString.length-1)];

これは機能しません:

[myAttString addAttribute:(NSString*)kCTFontNameAttribute
                          value:[UIFont boldSystemFontOfSize:16]
                          range:NSMakeRange(0, myAttString.length-1)];

とにかくこれを機能させる方法はありますか?

4

3 に答える 3

4

見つけた!

基本的に、私が使用すべき辞書キーの文字列定数はkCTFontAttributeNameであることがわかります

このすべてがショーです...

于 2012-07-11T22:37:56.160 に答える
3

NS 定数と完全な attributedString サポートがそこにあります。ただし、iOS5 にはまだありません。

CoreText 定数は機能し、CTFontRef も私が使用する方法です。コードの最初のブロックが機能するはずです。問題が他の場所にないことを他のコードで確認できますか。

于 2012-07-11T21:57:56.013 に答える