我在UIScrollView上放置了一些CTFrame文本列,我制作了一个选择工具,可以选择并突出显示文本,如下图所示。
我希望能够点击选择,因此矩形是在CTFrame上具有50%不透明度的UIButtons。
问题如下:由于某种原因,按钮TouchUpInside事件没有被触发,我认为如果突出显示放在CTFrame下面,它会有更好的效果,但我认为按钮不会收到事件
解决问题的任何想法,即,选择标记是否低于文本和可点击?
这是文字高亮示例:
答案 0 :(得分:2)
你是如何将CTFrame放置到UIScrollView的? CTFrame不是UIView的子类。你在哪里画它? 另请检查您的UIScroll视图的内容大小。
使用UIButton不是一个好主意,最好直接用Core Graphics绘制它。
触摸应该由UIView本身处理,然后转换为适当的文本。
使用CTFrameGetLineOrigins()
找到正确的行(通过检查Y原点),然后使用CTLineGetStringIndexForPosition()
在行中找到正确的字符(从点减去行原点后)。
答案 1 :(得分:0)
我认为你可以使用点击手势识别器,当点击时,只检查点击点是否在突出显示部分的矩形中。我认为轻敲手势识别器可以与UIScrollView一起使用(不像其他手势)。