Descripción de convertPoint: toView:

No entiendo muy bien el método convertPoint:toView:

En la documentation de Apple está escrito que

convertPoint:toView:

Convierte un punto del sistema de coorderadas del receptor al de la vista especificada.

 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 

Pero, ¿qué significa realmente convertir un punto de uno a otro?

¿Implica que los puntos en ambos límites tienen unidades diferentes ? ¿O simplemente diferentes valores?

Si es este último, ¿por qué existe un método de este tipo cuando podemos simplemente asignar el valor de un contenido de contentOffset a b?

 CGPoint a = [a contentOffset]; [b setContentOffset:a]; 

¿Cómo es convertPoint:toView: diferente de simplemente asignar contentOffset ? ¿O no entendí todo el concepto? ¿Qué es lo que realmente hacen los puntos de conversión ? ¿Cuándo se debe usar este método?

Cada UIView tiene su propio sistema de coorderadas. Entonces, si tiene una UIView_1 que contiene otra UIView_2, ambas tienen un punto (10,10) dentro de ellas.

convertPoint: toView: permite que el desarrollador tome un punto en una vista y convierta el punto a otro sistema de coorderadas de vista.

Ejemplo: view1 contiene view2. La esquina superior izquierda de view2 se encuentra en el punto view1 (10,10), o mejor para decir view2.frame.orgin = {10,10}. Que {10,10} se basa en el sistema de coorderadas view1. Hasta aquí todo bien.

El usuario toca la vista 2 en el punto {20,20} dentro de la vista2. Ahora esas coorderadas están en el sistema de coorderadas view2. Ahora puede usar covertPoint: toView: para convertir {20,20} en el sistema de coorderadas de view1. touchPoint = {20,20}

 CGPoint pointInView1Coords = [view2 convertPoint:touchPoint toView:view1]; 

Entonces, pointInView1Coords debería ser {30,30} en los sistemas de coorderadas view1. Ahora eso era solo una simple matemática en este ejemplo, pero hay todo tipo de cosas que contribuyen a la conversión. Las transformaciones y el escalamiento vienen a la mente.

Lea sobre el marco, los límites y el centro de UIView. Todos están relacionados y tratan con sistemas de coorderadas para una vista. Es confuso hasta que comiences a hacer cosas con ellos. Recuerde que este marco y centro están en el sistema de coorderadas del padre. Los límites están en el sistema de coorderadas de la vista.

John