J'essaye de comprendre les fonctionnalités de ces méthodes. Pouvez-vous me fournir un cas d'utilisation simple pour comprendre leur sémantique?
Dans la documentation, par exemple, la méthode convertPoint: fromView: est décrite comme suit:
Convertit un point du système de coordonnées d'une vue donnée en celui du récepteur.
Que signifie le système de coordonnées ? Et le récepteur ?
Par exemple, est-il logique d'utiliser convertPoint: fromView: comme ce qui suit?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
En utilisant l'utilitaire NSLog, j'ai vérifié que la valeur p coïncide avec le centre de view1.
Merci d'avance.
EDIT: pour ceux qui sont intéressés, j'ai créé un simple extrait de code pour comprendre ces méthodes.
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));
Dans les deux cas, self.window est le récepteur. Mais il y a une différence. Dans le premier cas, le paramètre convertPoint est exprimé en coordonnées view1. Le résultat est le suivant:
convertPoint: fromView: {100, 100}
Dans le second, à la place, le convertPoint est exprimé en coordonnées superview (self.window). Le résultat est le suivant:
convertPoint: toView: {0, 0}
convertPoint
etconvertRect
diffèrent par le type de retour.CGPoint
ouCGRect
. Mais qu'en est-ilfrom
etto
? Y a-t-il une règle de base que je pourrais utiliser? Je vous remercie.