Lo que me gustaría hacer es crear un componente de contenedor de texto que pueda indicar cuál es la palabra más cercana cuando hay un toque en ella (es decir, la palabra "detrás" "el punto tocado".Cómo obtener la palabra tocada en una UILabel/UITextView
Primero, creé una subclase UILabel y anulé el método touchesEnded: withEvent: para determinar el CGPoint tocado. También escribí un método que calcula el "marco" correspondiente (CGRect) de cada palabra del texto usando sizeWithFont: forWidth: lineBreakMode :. Con el CGPoint tocado y este marco, puedo determinar qué palabra se está tocando en realidad. Pero el método que calcula el marco solo funciona con texto de una sola línea.
Así que ahora necesito saber qué parte del texto está en una línea determinada (es decir, cómo se ha dividido el texto), de modo que pueda calcular el margen izquierdo y el margen superior correcto de cada palabra.
¿Alguna idea de cómo puedo obtener esto? ¿O tal vez tiene una solución más directa para lograr esto? This post was unfortunately not very helpful... ...
En realidad, lo que me gustaría evitar es dibujar el texto, ya que parece ser una sobrecarga teniendo en cuenta la necesidad inicial. Consideraré las teclas-funciones de CoreText que usted dio, ¡gracias! – AgentCorleone