私のアプリケーションでは、UILabel
内部に多くのテキストが含まれています。ユーザーが調査を行うとき、ユーザーが検索したテキストの下の背景を強調表示したいと思います。ここでは、MacOSX の「プレビュー」の例を示します。
ユーザーが無音を検索すると、この単語がテキスト内で強調表示されます。
何か案は ?ありがとう。
多分これは古い質問です。しかし、これは誰かに役立つと思います。
でテキストの一部を強調表示するために、 HighlightLabelUILabel
という名前のオープン ソースを作成しました。
hightlightText
とを指定するだけhighlightColor
で強調表示できます。
_highlightLabel.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.";
_highlightLabel.highlightText = @"Lorem ipsum dolor sit er elit lamet";
_highlightLabel.highlightColor = [UIColor yellowColor];
UILabel (または UITextView/カスタム ビュー) の「属性付き」テキストを有効にする必要があります。次に、テキストの一部の色 (bg/text) の色を変更するための素敵で高速なアルゴリズムを見つけて作成する必要があります。いくつかの単語/一致をマークする「属性付き文字列」アルゴリズムでかなり多くを見つけることができるはずです。
http://iphonedevelopment.blogspot.be/2011/03/attributed-strings-in-ios.htmlもチェックしてください
その場合、別の色/背景色で一致した単語を使用してカスタム HTML を作成することにより、webview を使用する方が簡単/迅速になる可能性があります。webview はほとんど通常のラベルのように見え、場合によってはユーザー エクスペリエンスを向上させることができるリンク/画像/... を使用するオプションも提供します。
これにはNSAttributedStringを使用する必要があります。
これも役立つかもしれません。これは、NSAttributedString を描画する UILabel のサブクラスであり、UIKit クラスから NSAttributedString の属性を設定するための便利なメソッドも提供します。
目的の文字/文字が見つかったら、UIView のその部分またはそこで使用しているものを強調表示します。