2

Twitterからツイートを取得するiPhoneアプリを開発しています。私はJsonを介してこれを行っており、すべてが正常に機能しています。各ツイートを検索して、ハッシュタグが含まれているかどうかを確認してから、その特定のタグの色を変更したいと考えています。

例:「これはツイート#MYTWEETです」

そこで、「これはツイートです」を1色にし、「#MYTWEET」を別の色にします。ハッシュタグを検索する方法は知っていますが、次のテキストだけを変更する方法がわからないようです。

編集:

特定のハッシュタグもありませんので、表示されるハッシュタグの色を変更できる必要があります。

4

3 に答える 3

11
NSString *tweet = @"This is a tweet #MYTWEET";

NSArray *words = [tweet componentsSeparatedByString:@" "];

NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:tweet];

for (NSString *word in words) {

    if ([word hasPrefix:@"#"]) {

        // Colour your 'word' here
        NSRange matchRange = [tweet rangeOfString:word];

        [attrString addAttribute:kCTForegroundColorAttributeName 
                           value:[UIColor redColor] 
                           range:matchRange]; 
        // Remember to import CoreText framework (the constant is defined there)

    }
}

//Display your attributed string ...

注: 文字列を表示する方法が不明な場合は、次の 1 つの優れたオープン ソース プロジェクトを参照してください: https://github.com/AliSoftware/OHAttributedLabel

于 2012-07-18T19:54:43.670 に答える
0

UILabel文字列を表示するために を使用している場合、Swift で記述されたハッシュタグ (#)、メンション (@)、および URL (http://) をサポートするドロップイン置換であるActiveLabel.swiftを使用できます。UILabel

ここに画像の説明を入力

ユーザー名、ハッシュタグ、リンクの色を変更するのは、次のように簡単です。

label.textColor = .blackColor()
label.hashtagColor = .blueColor()
label.mentionColor = .greenColor()
label.URLColor = .redColor()

免責事項: 私はライブラリの作成者です。

于 2015-09-04T17:26:36.327 に答える
0
 NSRange hashLocation = [tweetString rangeOfString:@"#MYTWEET"];
 if  (hashLocation.location == NSNotFound) 
      {
          //do coloring stuff here
      }

編集:部分文字列のみに色を付けようとしていると思います。これは現在のバージョンの iOS では不可能ですが、色ごとにラベルを作成し、それらを並べて配置することで、1 行のテキストのように読むことができます。

于 2012-07-18T18:29:06.567 に答える