我在 UIScrollView 上放置了一些 CTFrame 文本列,并且我制作了一个选择工具,以便能够选择并突出显示文本,如下图所示。
我希望能够单击所选内容,因此矩形是 CTFrame 上不透明度为 50% 的 UIButton。
问题如下:由于某种原因,按钮的 TouchUpInside 事件没有被触发,我认为如果将突出显示放在 CTFrame 下方,效果会更好,但我认为按钮不会收到事件。
有什么想法可以解决这个问题,即在文本下方有一个选择标记并且可以点击吗?
这是文本突出显示示例:
最佳答案
你是如何将 CTFrame 放置到 UIScrollView 上的? CTFrame 不是 UIView 子类。你在哪里画它? 另请检查您的 UIScroll View 的内容大小。
使用UIButtons并不是一个好主意,最好直接用Core Graphics来绘制。
触摸应该由 UIView 本身处理,然后转换为适当的文本。
使用 CTFrameGetLineOrigins()
查找正确的行(通过检查 Y 原点),然后使用 CTLineGetStringIndexForPosition()
查找该行内的正确字符(减去该行后)点为原点)。
关于objective-c - Core Text CTFrame 上的可点击区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847127/