Я работаю над приложением для твиттера, и мне нужна помощь. Я хотел бы заменить @usernames и URL-адрес жирным синим текстом и указать ссылку на соответствующие представления в моем приложении. Я могу проанализировать текст твита и создать массив с @usernames и URL-адресами, но я не понял, как анализировать и заменять @usernames и URL-адрес встроенным текстом со стилизованным текстом.
По сути, я бы хотел, чтобы текст выглядел аналогично тексту твита в официальном приложении Twitter (он же Tweetie).
Вот пример твита, который я нашел в Google. Вы заметите, что @usernames и ссылки синие:
http://www.tipb.com/images/stories/2009/02/twitter_celebs_iphone.jpg
Я использую GTMRegex из Google Toolbox для Mac для регулярных выражений.
Вот мой текущий код:
- (void)parseTweet {
NSString *text = message.text;
NSArray *a;
a = [text gtm_allSubstringsMatchedByPattern:@"@[[:alnum:]_]+"];
for (NSString *s in a) {
NTLNURLPair *pair = [[NTLNURLPair alloc] init];
pair.text = [NSString stringWithFormat:@"@%@", [s substringFromIndex:1]];
pair.screenName = s;
[links addObject:pair];
[pair release];
}
a = [text gtm_allSubstringsMatchedByPattern:@"http:\\/\\/[^[:space:]]+"];
for (NSString *s in a) {
NTLNURLPair *pair = [[NTLNURLPair alloc] init];
pair.text = s;
pair.url = s;
[links addObject:pair];
[pair release];
}
a = [text gtm_allSubstringsMatchedByPattern:@"https:\\/\\/[^[:space:]]+"];
for (NSString *s in a) {
NTLNURLPair *pair = [[NTLNURLPair alloc] init];
pair.text = s;
pair.url = s;
[links addObject:pair];
[pair release];
}
}