0

テキストビューで作業しています。特定のテキストビューで同じテキストを強調表示する必要があります。たとえば、テキストビューの次のテキストでは、すべての「Apple」単語を強調表示する必要があります

iPhone となるものの開発は 2004 年に始まり、Apple は 1000 人の従業員からなるチームを集めて機密性の高い「プロジェクト パープル」に取り組み始めました。Apple の CEO である Steve Jobs は、当初の焦点を iPad のようなタブレットから離れ、電話に向けました[29]。Apple は、AT&T Mobility (当時は Cingular Wireless) との秘密裏の共同作業中に、30 か月で 1 億 5000 万ドルの推定開発費をかけてこのデバイスを作成しました[30]。

このコードを使用して、dat text ビューで特定の「Apple」文字列の位置を見つけています

NSString *sel_text = @"Apple";
 NSRange range = [subTextView.text rangeOfString:sel_text];

subTextView.selectedRange =range;

    UITextRange *textRange = [subTextView selectedTextRange];
 CGRect rect = [subTextView firstRectForRange:textRange];

これは、「Apple」の最初の位置を見つけるのに役立ちます。その文字列の次の位置を見つけることができません。

その文字列のすべての位置を見つけるのを手伝ってください

ありがとうございました

4

1 に答える 1

0

rangeOfString:options:range:セレクターを使用して、単純なループで文字列全体を反復処理できます。例えば、

NSString *sel_text = @"Apple";
NSRange range = [data rangeOfString:sel_text];
while(range.location != NSNotFound) {

    subTextView.selectedRange =range;
    UITextRange *textRange = [subTextView selectedTextRange];
    CGRect rect = [subTextView firstRectForRange:textRange];

    range = [data rangeOfString:sel_text options:0 range:NSMakeRange(range.location + sel_text.length, data.length - range.location - sel_text.length)];
}
于 2013-10-21T21:15:40.537 に答える