Iphone 在UITextView中查找指定单词的(x,y)坐标

Iphone 在UITextView中查找指定单词的(x,y)坐标,iphone,ios,objective-c,uitextview,Iphone,Ios,Objective C,Uitextview,这是我在UITextView中的内容 ==>“一种“大都市”餐饮体验,提供精致的食物,注重视觉细节和味道。” 现在我的问题简单明了,如何在textview中找到单词“experience”的位置(x,y) 任何解决方案都将不胜感激。使用sizeWithFont,假设它是这样的: NSString *text = textView.text; NSString *substring = [text substringToIndex:[text rangeOfString:@"experience"

这是我在UITextView中的内容

==>“一种“大都市”餐饮体验,提供精致的食物,注重视觉细节和味道。”

现在我的问题简单明了,如何在textview中找到单词“experience”的位置(x,y)


任何解决方案都将不胜感激。

使用sizeWithFont,假设它是这样的:

NSString *text = textView.text;
NSString *substring = [text substringToIndex:[text rangeOfString:@"experience"].location];
CGSize size = [substring sizeWithFont:textView.font];
CGPoint p = CGPointMake((int)size.width % (int)textView.frame.size.width, ((int)size.width / (int)textView.frame.size.width) * size.height);
试试这个:

- (CGPoint)getPoint:(UITextView *)textView
{
    NSRange range = [textView.text rangeOfString:@"experience"];

    UITextPosition *beginning = textView.beginningOfDocument;
    UITextPosition *start = [textView positionFromPosition:beginning offset:range.location];
    UITextPosition *end = [textView positionFromPosition:start offset:range.length];
    UITextRange *textRange = [textView textRangeFromPosition:start toPosition:end];
    CGRect rect = [textView firstRectForRange:textRange];
    return rect.origin;
}

如果你想在斯威夫特试试这个

    let range: NSRange = (txtView.text as NSString).range(of: text)
    let beginning: UITextPosition? = txtView.beginningOfDocument
    let start: UITextPosition? = txtView.position(from: beginning!, offset: range.location)
    let end: UITextPosition? = txtView.position(from: start!, offset: range.length)
    let textRange: UITextRange? = txtView.textRange(from: start!, to: end!)
    let rect: CGRect = txtView.firstRect(for: textRange!)

我得到了一些p.x的浮点值…p.x意味着什么?p.x假设是整个视图中文本的x坐标。[substring sizeWithFont:textView.font].width是textView中的x坐标我得到的是p.x=1368.000000,我的UITextview宽度本身是360.000。是否有任何计算有待于找到单词的精确(x,y)值?您的UITextview是一行还是几行?我编辑了我的答案,它可能适合您的多行文本视图。类似于此,希望它与您想要的相同@Reefaq..谢谢rafeeq,但解决方案是硬编码的..我相信使用一些计算逻辑我们可以实现它。玩代码,然后你就可以实现它。。您可以将该链接作为获得解决方案的方向。