Анализировать и заменять @usernames и URL в приложении iphone - PullRequest
2 голосов
/ 09 марта 2011

Я работаю над приложением для твиттера, и мне нужна помощь. Я хотел бы заменить @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];
}

}

1 Ответ

0 голосов
/ 17 марта 2011

Какой тип ViewController вы используете?Не знаю, правильно ли я понимаю вашу проблему, но, возможно, было бы полезно использовать UIWebView для отображения содержимого вашего массива.

Тогда вы можете легко включить локальную таблицу стилей для стилизации ссылок так, как вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...