34 votes

convertPoint:toView: dans le paysage de la mode de donner des valeurs erronées

J'ai un point de vue qui est créé en mode paysage (longtemps après la rotation, etc.).
De ce point de vue, je veux trouver un point par rapport à la fenêtre principale.
Le code suivant fonctionne en mode portrait, mais dans landscappe il renvoie toujours des valeurs comme si elle était dans le portrait.

CGPoint ptRelativeToWindow = [self convertPoint:self.bounds.origin toView:nil];

Résolu

Cela a résolu le problème et donne les coordonnées de droite:

[self convertPoint:self.bounds.origin toView:[UIApplication sharedApplication].keyWindow.rootViewController.view];

15voto

Nick Points 1868

Vous ne pouvez pas utiliser la fenêtre principale afin de calculer les coordonnées relatives. La fenêtre principale reçoit la rotation des événements et transmet les contrôleurs qui signifie qu'il ne change pas la taille elle-même (toujours le même portrait de limites). C'est pourquoi la solution que vous avez trouvé un sens: vous trouverez les coordonnées par rapport à la vue de la racine contrôleur qui reçoit la rotation des événements et des changements de sa taille en conséquence

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X