gpt4 book ai didi

ios - 我可以获取元素在 NSAttributedString 中的位置吗?

转载 作者:行者123 更新时间:2023-11-29 12:28:09 25 4
gpt4 key购买 nike

enter image description here

我使用 NSAttributeString 来获取类似上面的内容(包括普通文本、带下划线的文本和图像),现在我想做的是:如果用户点击带下划线的文本区域,我将执行一些特殊操作(打开网页或某事).现在我已经可以得到触摸的位置,但是我能找到带下划线的文本的位置(或区域)吗?所以我可以使用这两个区域来判断点击位置是否位于下划线文本上?

最佳答案

使用UITextView很容易实现。在 textview 上添加点击手势,当点击 textview 时检查是否点击特定字符。

textView.textContainerInset = UIEdgeInsetsZero;
[textView setContentInset:UIEdgeInsetsZero];
textView.attributedText = @"your attributedString";
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textTapped:)];
[textView addGestureRecognizer:tap];

添加Gesture实现方法

- (void)textTapped:(UITapGestureRecognizer *)recognizer
{
UITextView *textView = (UITextView *)recognizer.view;

/*--- Get range of string which is clickable ---*/
NSRange range = [textView.text rangeOfString:@"Your Clickable String"];

NSLayoutManager *layoutManager = textView.layoutManager;
CGPoint location = [recognizer locationInView:textView];
NSUInteger characterIndex = [layoutManager characterIndexForPoint:location inTextContainer:textView.textContainer fractionOfDistanceBetweenInsertionPoints:NULL];

if (characterIndex >= range.location && characterIndex < range.location + range.length - 1)
{
NSLog(@"Text Tapped:");
}
}

关于ios - 我可以获取元素在 NSAttributedString 中的位置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28472073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com