Estou tentando entender as funcionalidades desses métodos. Você poderia me fornecer um simples caso de uso para entender a semântica deles?
Na documentação, por exemplo, o método convertPoint: fromView: é descrito da seguinte maneira:
Converte um ponto do sistema de coordenadas de uma determinada vista para o do receptor.
O que significa o sistema de coordenadas ? E o receptor ?
Por exemplo, faz sentido usar o convertPoint: fromView: como o seguinte?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Usando o utilitário NSLog, verifiquei que o valor p coincide com o centro da view1.
Agradeço antecipadamente.
EDIT: para os interessados, criei um snippet de código simples para entender esses 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));
Nos dois casos, self.window é o receptor. Mas há uma diferença. No primeiro caso, o parâmetro convertPoint é expresso nas coordenadas da view1. A saída é a seguinte:
convertPoint: fromView: {100, 100}
No segundo, em vez disso, o convertPoint é expresso em coordenadas de superview (janela de auto). A saída é a seguinte:
convertPoint: toView: {0, 0}
convertPoint
econvertRect
diferem no tipo de retorno.CGPoint
ouCGRect
. Masfrom
e quantoto
? Existe uma regra prática que eu possa usar? Obrigado.