8

iPhone アプリで Core Text を使用していくつかのテキストをレイアウトしました。NSAttributedString特定の範囲のテキスト内に特定のスタイルを設定するために使用しています。

背景/ハイライトの色を設定するための属性が見つからないようですが、可能だと思われます。関連すると思われる属性名の定数が見つかりませんでした。ドキュメントには次のリストしかありません。

kCTCharacterShapeAttributeName
kCTFontAttributeName
kCTKernAttributeName
kCTLigatureAttributeName
kCTForegroundColorAttributeName
kCTForegroundColorFromContextAttributeName
kCTParagraphStyleAttributeName
kCTStrokeWidthAttributeName
kCTStrokeColorAttributeName
kCTSuperscriptAttributeName
kCTUnderlineColorAttributeName
kCTUnderlineStyleAttributeName
kCTVerticalFormsAttributeName
kCTGlyphInfoAttributeName
kCTRunDelegateAttributeName

Twitterrific の開発者である Craig Hockenberry は、ツイートをレンダリングするために Core Text を使用していると Twitter で公に述べています。

代替テキスト

正しい方向への助けや指針は素晴らしいでしょう、ありがとう。

編集:これは、 Craig が投稿した「コア テキスト、属性付き文字列、および多くのハードワーク」について言及たツイートへのリンクです。

4

2 に答える 2

3

最後に、Core Text メトリクス メソッド (範囲、境界、線の起点などを取得する) を使用して、リンクの外接する四角形を計算する必要がありました。リンクがまたがる各行の四角形を作成したら、その上のテキストを再描画する前に、背景をコンテキストに描画しました。

大変な作業のように思えますが、うまくいきます。

于 2010-12-28T12:49:11.560 に答える
1

iOS 6 では、NSBackgroundColorAttributeName を使用して、探している効果を得ることができると思います。そのような:

[attributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor yellowColor] range:selectedRange];
于 2012-12-05T22:25:24.617 に答える