如何使用CoreText获取哪个单词用于事件/手势

问题描述 投票:1回答:2

我使用CoreText来布局自定义视图。想知道我用CoreText点击事件/手势的哪个词。

我在我的drawRect:中执行了以下代码

CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSelectFont(context, "Helvetica-Bold", FONTSIZE, kCGEncodingMacRoman);

//setSpan
CGContextSetTextPosition(context, 0, (200+offset) - (i*25));
CGContextShowText(context,[[dispLineArray objectAtIndex:i] UTF8String], strlen([[dispLineArray objectAtIndex:i] UTF8String]));
ios objective-c core-text
2个回答
0
投票

在这个已回答的问题中,您可以找到有关CoreText和触摸手势的信息:

Using CoreText and touches to create a clickable action(未经我测试!)

在该示例中,您可以看到如何从触摸位置获取字符串字符索引。在此之后,您可以使用不同的方法提取单词,例如在两个NSString中按字符位置拆分NSString,然后用空格字符拆分两者。现在,我们有两个NSArray。在此之后,将两个NSArray的最后一个元素和第一个元素合并为一个NSString。你有这个词。

这是一个基本的,肯定有更好的方法来使用正则表达式或其他技术来做到这一点。


0
投票

如果显示视图是uiview。您可以使用视图的gestureRecognizer执行此操作。如果显示视图是自定义GTFrameRef,请使用uiresponse touch founcations。

© www.soinside.com 2019 - 2024. All rights reserved.