【问题标题】:Clickable text in -drawRect:-drawRect 中的可点击文本:
【发布时间】:2011-10-24 00:59:28
【问题描述】:

我正在使用 -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/ 是一个超链接。

【问题讨论】:

    标签: iphone ios button hyperlink drawrect


    【解决方案1】:

    您可以使用UITextViewUIWebView,其中有dataDetectorTypes

    【讨论】:

      【解决方案2】:

      你不能从 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];
      

      【讨论】:

        猜你喜欢
        • 2014-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-14
        • 1970-01-01
        • 1970-01-01
        • 2016-04-27
        • 1970-01-01
        相关资源
        最近更新 更多