我正在使用-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/是超链接的上面那样。
答案 0 :(得分:0)
您可以使用UITextView
或UIWebView
{{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];