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

时间:2014-02-27 14:19:19

标签: ios objective-c core-text

我使用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]));

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

如果显示视图是uiview。您可以使用视图的gestureRecognizer进行操作。 如果显示视图是自定义GTFrameRef,请使用uiresponse触摸功能。