Core Text CTFrame上的可点击区域

时间:2012-08-07 13:30:30

标签: objective-c ios cocoa-touch core-text

我在UIScrollView上放置了一些CTFrame文本列,我制作了一个选择工具,可以选择并突出显示文本,如下图所示。

我希望能够点击选择,因此矩形是在CTFrame上具有50%不透明度的UIButtons。

问题如下:由于某种原因,按钮TouchUpInside事件没有被触发,我认为如果突出显示放在CTFrame下面,它会有更好的效果,但我认为按钮不会收到事件

解决问题的任何想法,即,选择标记是否低于文本和可点击?


这是文字高亮示例:

Text selection over CTFrame

2 个答案:

答案 0 :(得分:2)

你是如何将CTFrame放置到UIScrollView的? CTFrame不是UIView的子类。你在哪里画它? 另请检查您的UIScroll视图的内容大小。

使用UIButton不是一个好主意,最好直接用Core Graphics绘制它。 触摸应该由UIView本身处理,然后转换为适当的文本。 使用CTFrameGetLineOrigins()找到正确的行(通过检查Y原点),然后使用CTLineGetStringIndexForPosition()在行中找到正确的字符(从点减去行原点后)。

答案 1 :(得分:0)

我认为你可以使用点击手势识别器,当点击时,只检查点击点是否在突出显示部分的矩形中。我认为轻敲手势识别器可以与UIScrollView一起使用(不像其他手势)。