Recuper et travailler la taille de la vue au moment d une rotation.

LoadexLoadex Membre
08:47 modifié dans API AppKit #1
Bonjour la communaute, je me tourne vers vous avec un nouveau probleme, je travaille actuellement sur un generateur d interface, qui peut changer au moment d une rotation de la vue de l appareil (controles qui aparaissent disparaissent changent de place etc etc)

Jusqu'a maintenant, je faisais comme ceci : dans ma view

<br />(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation&#092;n{<br /> // Return YES for supported orientations<br /> if (parsingOver) //me permet de bien verifier que mon autre thread de parsing est finit<br />&nbsp; {<br />&nbsp; &nbsp; if ([generateView generateXMLView:content generatedView:self position:interfaceOrientation]) //mon generateur est appelle ici <br />&nbsp; &nbsp; &nbsp;  return (interfaceOrientation = YES);<br />&nbsp;  else<br />&nbsp; &nbsp; &nbsp;  return (interfaceOrientation = NO);<br /> }<br />else<br /> return (interfaceOrientation = YES);<br />

Cependant, cela ne fonctionne plus, c est a dire que la premiere roation est comme "ignoree", ainsi ma generation est toute chanboulee apres 2 rotation (il se croit en horizontal alors qu il est en vertical) depuis quelques heures, alors que je n ai modifie aucun code je me penche donc sur la doc apple et trouve :

Your implementation of this method should simply return YES or NO based on the value in the interfaceOrientation parameter. Do not attempt to get the value of the interfaceOrientation property or check the orientation value reported by the UIDevice class. Your view controller is either capable of supporting a given orientation or it is not.

Ainsi si je comprends bien , dans cette methode, il est impossible de recuperer la taille de la view de maniere sure ?

comment puis donc faire ?
Merci pour vos reponses.

Réponses

  • AliGatorAliGator Membre, Modérateur
    08:47 modifié #2
    shouldAutorotateToInterfaceOrientation: ne doit pas être utilisé pour faire des modifications de ton interface, mais seulement pour tester si oui ou non tu as le droit de faire des rotations. Utilise les autres méthodes décrites dans la doc pour effectivement modifier ton interface / appeler ton générateur (quitte à  faire des animations des éléments que tu changes de place plutôt que les faire "sauter" d'un emplacement à  un autre) plutôt que de les faire ici. Cela t'enlèvera déjà  quelques soucis.
  • LoadexLoadex Membre
    décembre 2011 modifié #3
    Merci pour ta reponse, quelle methode me conseillerais tu d utiliser du coup ?
  • AliGatorAliGator Membre, Modérateur
    08:47 modifié #4
    Heu j'ai pas dit de changer de classe. Juste d'utiliser les bonnes méthodes. Et aller lire la doc Apple que j'ai mis en lien, ou consulter la session d'octobre des CocoaHeads de Rennes que Thomas a faite sur les rotations
  • LoadexLoadex Membre
    08:47 modifié #5
    j ai edite ma petite confusion excuse moi :P
  • NasatyaNasatya Membre
    08:47 modifié #6
    Je connaissais pas le site CocoaHeads y a de bonne vidéo ils ont l'air de faire de bon truc en plus je comprenais pas trop non plus cette histoire de rotation je me rends compte que j'étais loin d'avoir les "best practice"... Merci pour tes lumières.
  • AliGatorAliGator Membre, Modérateur
    08:47 modifié #7
    @Nasatya n'hésite pas à  venir à  nos présentations / conférences (enfin celle de ta ville, moi j'y vais à  Rennes mais il y a à  plusieurs endroits dans toute la France et même le monde entier) c'est ouvert à  tout le monde.
  • NasatyaNasatya Membre
    08:47 modifié #8
    J'avoues que c'est très tentant je suis sur Paris j'imagine qu'il doit effectivement y avoir des choses pas loin de chez moi si j'ai le temps je passerais faire un tour oui ça a l'air vraiment bien merci encore pour l'info.
  • AliGatorAliGator Membre, Modérateur
    décembre 2011 modifié #9
    Oui je te le conseille c'est vraiment sympa. En plus à  Paris (c'est ici), Guillaume a initié les SmallTalks (concept qu'on va sans doute lui piquer à  Rennes ^^) en plus des présentations, ce qui permet de discuter entre développeurs Cocoa de mini-débats (genre faut-il continuer de supporter les derniers iOS ? Pour ou contre ARC ? etc) et en plus ça permet de rencontrer plein de nouveaus développeurs Cocoa IRL :)
Connectez-vous ou Inscrivez-vous pour répondre.