Estoy tratando de entender las funcionalidades de estos métodos. ¿Podría proporcionarme un caso de uso simple para comprender su semántica?
De la documentación, por ejemplo, convertPoint: fromView: el método se describe de la siguiente manera:
Convierte un punto del sistema de coordenadas de una vista dada a la del receptor.
¿Qué significa el sistema de coordenadas ? ¿Qué hay del receptor ?
Por ejemplo, ¿tiene sentido usar convertPoint: fromView: como el siguiente?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Usando la utilidad NSLog, he verificado que el valor p coincide con el centro de view1.
Gracias de antemano.
EDITAR: para aquellos interesados, he creado un fragmento de código simple para comprender estos métodos.
UIView* view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 150, 200)];
view1.backgroundColor = [UIColor redColor];
NSLog(@"view1 frame: %@", NSStringFromCGRect(view1.frame));
NSLog(@"view1 center: %@", NSStringFromCGPoint(view1.center));
CGPoint originInWindowCoordinates = [self.window convertPoint:view1.bounds.origin fromView:view1];
NSLog(@"convertPoint:fromView: %@", NSStringFromCGPoint(originInWindowCoordinates));
CGPoint originInView1Coordinates = [self.window convertPoint:view1.frame.origin toView:view1];
NSLog(@"convertPoint:toView: %@", NSStringFromCGPoint(originInView1Coordinates));
En ambos casos, self.window es el receptor. Pero hay una diferencia. En el primer caso, el parámetro convertPoint se expresa en coordenadas view1. El resultado es el siguiente:
convertPoint: fromView: {100, 100}
En el segundo, en cambio, el convertPoint se expresa en coordenadas de supervista (self.window). El resultado es el siguiente:
convertPoint: toView: {0, 0}
convertPoint
yconvertRect
difieren en el tipo de devolución.CGPoint
oCGRect
. Pero ¿qué pasafrom
yto
? ¿Hay alguna regla general que pueda usar? Gracias.