2011-03-08 68 views
2

我正在开发一个推特应用,需要一些帮助。我想替换@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]; 
} 

}

+0

你目前的代码不适合你吗? – Ether 2011-03-08 22:07:07

+0

@其他我可以通过使用上面的代码提取@usernames和链接,但我一直无法弄清楚如何替换带有蓝色链接的文本。 – kbecker 2011-03-09 00:00:51

+0

iOS中的样式文本目前并不容易。你对Core Text感到满意吗,如果这是可行的,但不在3.2之前; Three20为您的案例设计了标签,或者您可以考虑使用网页视图。 – 2011-03-10 15:43:06

回答

0

你使用什么类型的ViewController的? 不知道我是否理解你的问题是正确的,但也许它会帮助使用UIWebView来显示你的数组的内容。

然后,您可以轻松地包含一些本地样式表,以按照您想要的方式设置样式。