Problème storyboard

dédodédo Membre
août 2014 modifié dans API UIKit #1

Bonjour,


 


C'est la première fois que je rencontre ce problème et je suis un peu perdu.


 


Lorsque je lance mon application, le premier ViewController de mon Storyboard apparaà®t comme prévu mais lorsque que je veux modifier la position d'un bouton aucune réaction.


 


Pourtant, j'ai bien fait comme d'habitude.



- (void)viewDidLoad
{

[super viewDidLoad];
BouttonNext.center = CGPointMake(BouttonNext.center.x, self.view.frame.size.height-BouttonNext.frame.size.height*0.5);
NSLog(@Position(x,y): %f %f,BouttonNext.center.x,BouttonNext.center.y);

}
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@Position(x,y): %f %f,BouttonNext.center.x,BouttonNext.center.y);
}

Le premier log affiche bien la valeur souhaité (160,543) cependant le second affiche la position de ce même bouton tel qu'il est dans mon Storyboard(160,406).


 


Un truc tout bête? Oui je pense...


 


Merci par avance.


Réponses

  • CéroceCéroce Membre, Modérateur

    Qu'est ce que BoutonNext ? Déjà , c'est mal nommé, parce que par convention, les noms de variables commencent par une minuscule ou _ .


  • A priori un problème d'auto-layout, regarde pour le désactiver dans le storyboard.

  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2014 modifié #4

    C'est pourquoi tu veux déplacer le bouton après le chargement de la vue ?


     


    Je viens de l'essayer, avec et sans autolayout - il paraà®t que c'est l'autolayout qui déplace le bouton vers les coordonnées auxquelles on a poser le bouton sur le storyboard.


     


    Si tu veux déplacer les composantes, il y'a deux démarches principaux :


     


    1. en utilisant autolayout - changes le contraints de placement en code


     


    2. évites l'autolayout.


     


    Je te conseillerais de suivre N° 1 


  • @Céroce tu as raison. J'ai un problème avec les conventions, je les ai toujours plus ou moins respectées. Concernant le bouton, c'est juste un bouton pour changer de vu que je déplace suivant le device (iPhone 4 ou 5).


     


    Merci. Vous avez tous les deux raisons, c'était bien l'autolayout :). Tout va comme je veux maintenant, merci.


  • Joanna CarterJoanna Carter Membre, Modérateur


    Merci. Vous avez tous les deux raisons, c'était bien l'autolayout :). Tout va comme je veux maintenant, merci.




     


    Et qu'est ce que tu as fait - utilisé les contraints en autolayout ou l'évité ?

  • Du coup, j'ai simplement utilisé ta deuxième proposition. 


    Tu m'as conseillé la première parce qu'il faut mieux évité la deuxième ou c'est parce qu'elle a des avantages? (Je n'ai jamais utilisé l'autolayout)


  • Joanna CarterJoanna Carter Membre, Modérateur


    Concernant le bouton, c'est juste un bouton pour changer de vu que je déplace suivant le device (iPhone 4 ou 5).




     


    Je viens de relire. Si tu utilisais autolayout, il n'y aurait rien à  faire dans le code. Seulement ajouter les contraints entre le bouton et le bas de la vue.

  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2014 modifié #9


    Du coup, j'ai simplement utilisé ta deuxième proposition.




     


    Lâche  :P


     




    Tu m'as conseillé la première parce qu'il faut mieux évité la deuxième ou c'est parce qu'elle a des avantages? (Je n'ai jamais utilisé l'autolayout)




    Parce qu'il y a des avantages - réduction de code et placement automatique, n'importe quoi l'écran


  • Je regarderai de plus près l'autolayout une prochaine fois.


     


    Ma lâcheté marche très bien et pour ce que je veux faire, c'est suffisant.  :D 

  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2014 modifié #11


    Ma lâcheté marche très bien et pour ce que je veux faire, c'est suffisant.  :D 




     


    Et après la sortie de l'iPhone 6 avec l'écran plus grand ?  ::)


  • Haha ... On n'est pas sûr à  100% que son écran soit plus grand. Qui sait, il vont peut être faire plaisir aux développeur faignant et laisser le même que sur l'iPhone 5. 


     


    Non non, je verrai à  ce moment là  du coup. :)




  • Haha ... On n'est pas sûr à  100% que son écran soit plus grand. Qui sait, il vont peut être faire plaisir aux développeur faignant et laisser le même que sur l'iPhone 5. 


     


    Non non, je verrai à  ce moment là  du coup. :)




    Hum avec Xcode 6 et sizeClass, je pense que un moment donné tu devras t'y mettre. Car le principe de sizeClass, c'est d'avoir un StoryBoard pour n'importe quelle taille d'écran. Et là , sans autoLayout, ça va être plus compliqué je pense.

  • Joanna CarterJoanna Carter Membre, Modérateur
    Même si tu n'utilises pas autolayout, il te reste les "springs and struts" qui sont là  pour maintenir la position des controls sans avoir écrire du code.
  • Joanna CarterJoanna Carter Membre, Modérateur
    août 2014 modifié #15

    En plus, si tu n'utilises ni autolayout ni springs and struts, comment tu fais face à  la rotation ? Encore plus de code ?


Connectez-vous ou Inscrivez-vous pour répondre.