Ejemplo: Tengo un CGPoint en la ventana de coordenadas:Cómo convertir coordenadas de ventana en relación con una vista específica?
CGPoint windowPoint = CGPointMake(220.0f, 400.0f);
No es aView
que tiene una supervista en un supervista en un supervista. En algún lugar profundo de la jerarquía de vistas, probablemente incluso se haya transformado algunas veces.
Cuando obtiene un UITouch, puede solicitarlo -locationInView: y devolverá las coordenadas relativas a esa vista.
Necesito casi lo mismo. ¿Hay alguna manera fácil de lograr eso?
Hay varias rutinas de conversión como que uno proporcionado por UIView. Todos están descritos en la guía de referencia de la clase UIView. http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/convertPoint:fromView: – progrmr
Truco útil si necesita hacerlo esto para un marco rect, por ejemplo para animación, es [sourceView convertRect: targetView.bounds fromView: targetView]; no use targetView.frame o agregará su origen dos veces. – Hafthor
Puede usar nil en lugar de self.window, en este caso el método se convierte en base a las coordenadas de la ventana – mt81