我正在开发一个推特应用,需要一些帮助。我想替换@usernames和URL的w /粗体蓝色文本,并链接到我的应用程序中相应的视图。我可以解析tweet文本,并使用@usernames和URL构建一个数组,但是我还没有想出如何解析和替换内联的@usernames和URL的w /风格化文本。解析并替换iphone应用中的@usernames和URL's
基本上我希望文本看起来与官方Twitter应用程序(又名Tweetie)上的tweet文本类似。
下面是我在google上发现的推文示例。您会注意到@ usernames和链接是蓝色的: http://www.tipb.com/images/stories/2009/02/twitter_celebs_iphone.jpg
我正在使用来自Google Toolbox for Mac的GTMRegex正则表达式。
这里是我当前的代码:
- (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];
}
}
你目前的代码不适合你吗? – Ether 2011-03-08 22:07:07
@其他我可以通过使用上面的代码提取@usernames和链接,但我一直无法弄清楚如何替换带有蓝色链接的文本。 – kbecker 2011-03-09 00:00:51
iOS中的样式文本目前并不容易。你对Core Text感到满意吗,如果这是可行的,但不在3.2之前; Three20为您的案例设计了标签,或者您可以考虑使用网页视图。 – 2011-03-10 15:43:06