首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >链接的TTTAttributedLabel和弹出窗口

链接的TTTAttributedLabel和弹出窗口
EN

Stack Overflow用户
提问于 2012-12-24 21:45:19
回答 2查看 1.2K关注 0票数 3

有没有可能检测链接文本的CGRect或位置的CGPoint,在TTTAttributedLabel中显示点击链接的弹出窗口(在ipad上)?我需要显示与TTTAttributedLabel点击链接弹出窗口。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-27 02:15:11

您只能通过修改TTTAttributedLabel来支持此行为。

1)修改委托方法:

代码语言:javascript
复制
- (void)attributedLabel:(TTTAttributedLabel *)label
   didSelectLinkWithURL:(NSURL *)url
                atPoint:(CGPoint)point;

2)在委托源码中,修改touchesEnded:withEvent:,抓取接触点,并将其传递给TTTAttributedLabel.m方法。

代码语言:javascript
复制
    switch (result.resultType) {
        case NSTextCheckingTypeLink:
            if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithURL:atPoint:)]) {
                UITouch *touch = [touches anyObject];
                CGPoint touchPoint = [touch locationInView:self];
                [self.delegate attributedLabel:self didSelectLinkWithURL:result.URL atPoint:touchPoint];
                return;

3)在视图控制器中,您需要将触摸点转换为与视图控制器的视图相对的坐标:

代码语言:javascript
复制
#pragma mark TTTAttributedLabelDelegate
- (void)attributedLabel:(TTTAttributedLabel *)label
   didSelectLinkWithURL:(NSURL *)url 
                atPoint:(CGPoint)point
{
        CGPoint normalizedPoint = [self convertPoint:point fromView:label];        

        UIActionSheet *actionSheet = [[UIActionSheet alloc] ...
        [actionSheet showFromRect:CGRectMake(normalizedPoint.x, normalizedPoint.y-kSensibleOffset, 10, 10)
                           inView:label
                         animated:YES];
    }
#pragma mark -
票数 2
EN

Stack Overflow用户

发布于 2012-12-25 07:11:46

您不希望通过尝试跟踪位置来在手势级别执行此操作。因为你有一个链接,所以只要覆盖openURL,并在拦截链接点击时做任何你想做的事情。更多细节请访问here

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14022175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档