-drawRect中的可点击文本:

时间:2011-08-10 12:06:22

标签: iphone ios button hyperlink drawrect

我正在使用-drawRect:在UIView中绘制一个字符串。这个字符串可能包含链接,我想让这些链接成为不同的颜色并使它们可以点击。

有谁知道最好(也是最简单)的方法吗?我担心我必须过滤掉字符串中的链接,为链接创建按钮,然后手动定位字符串的不同部分,包括按钮。

这是我在-drawRect中的代码:

NSString *message = [cellData objectForKey:@"message"];
CGSize messageLabelSize = [sizeCalc sizeOfMessageLabel:message];
[message drawInRect:CGRectMake(kBoxPadding + kProfilePicWidth + kBoxPadding, kBoxPadding + nameLabelSize.height + kSpacingNameToMessage - kContentOffset, messageLabelSize.width, messageLabelSize.height) withFont:[UIFont fontWithName:@"Helvetica" size:13]];

我的消息字符串可能如下所示:

  

“这是一个测试文本,其中有一个链接http://google.com/   中间“。

我希望结果看起来有点像http://google.com/是超链接的上面那样。

2 个答案:

答案 0 :(得分:0)

您可以使用UITextViewUIWebView {{1}}。

答案 1 :(得分:0)

你不能从drawRect,因为只是绘制图形,你需要一个子视图:

NSString *message = @"This is a test text and it has a link http://google.com/ in the middle.";
CGSize size = [message sizeWithFont:[UIFont boldSystemFontOfSize:11.0]]
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake (0, 0, size.width, size.height)]; 
textVioew.editable = NO;
[textView setDataDetectorTypes:UIDataDetectorTypeLink];
[textView setText:message];
[self.view addSubview:textView];
[textView release];