Sto cercando di capire le funzionalità di questi metodi. Potresti fornirmi un semplice esempio per comprendere la loro semantica?
Dalla documentazione, ad esempio, convertPoint: fromView: il metodo è descritto come segue:
Converte un punto dal sistema di coordinate di una determinata vista a quello del ricevitore.
Cosa significa il sistema di coordinate ? E il ricevitore ?
Ad esempio, ha senso usare convertPoint: fromView: come il seguente?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Utilizzando l'utilità NSLog, ho verificato che il valore p coincide con il centro di view1.
Grazie in anticipo.
EDIT: per chi è interessato, ho creato un semplice frammento di codice per comprendere questi metodi.
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));
In entrambi i casi self.window è il ricevitore. Ma c'è una differenza. Nel primo caso il parametro convertPoint è espresso in coordinate view1. L'output è il seguente:
convertPoint: fromView: {100, 100}
Nella seconda invece, convertPoint è espresso in coordinate superview (finestra self.window). L'output è il seguente:
convertPoint: toView: {0, 0}
convertPoint
econvertRect
differiscono nel tipo di ritorno.CGPoint
oppureCGRect
. Ma che dire difrom
eto
? Esiste una regola empirica che potrei usare? Grazie.