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