Xcode et/ou Interface Builder ?
Giga_Boss
Membre
Salut,
toujours dans mes tutos, je remarque qu'il est possible de modifier l'interface via Xcode et InterfaceBuilder, par contre quand je modifie sur Xcode, je ne le vois pas dans IB et inversement.
Sur lequel vaut-il meut travailler pour l'aspect graphique ?
N'existe-il pas un moyen de coder sur Xcode et retoucher sur IB ?
Je précise, mon niveau est encore à l'apprentissage de base.
Merci beaucoup !
toujours dans mes tutos, je remarque qu'il est possible de modifier l'interface via Xcode et InterfaceBuilder, par contre quand je modifie sur Xcode, je ne le vois pas dans IB et inversement.
Sur lequel vaut-il meut travailler pour l'aspect graphique ?
N'existe-il pas un moyen de coder sur Xcode et retoucher sur IB ?
Je précise, mon niveau est encore à l'apprentissage de base.
Merci beaucoup !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Sous Xcode on aligne les objets/lignes de code.
L'interface graphique se fait sous Interface Builder (dont le nom indique bien la fonction).
La liaison entre les deux se fait au moyen des IBActions et IBOulets.
Grosso-modo, sous IB tu définis l'aspect de l'interface graphique à l'ouverture de l'application. Après tu peux toujours changer l'aspect par programmation.
Dans des cas particuliers, il est possible de tout faire en ligne de code (là , il faut un certain courage!!)
Pour la suite, je laisse les programmeurs iPad/iphone te répondre.
Personnellement, je préfère tout coder, je trouve IB imprécis, peu pratique, enfin après c'est aussi parce que je ne m'en sert pas très bien. Quelqu'un qui à l'habitude de s'en servir me contredira.
Au moins, sous xCode, tu place au pixel prêt.
Pour ce qui est de coder sur Xcode et retoucher sur IB, ce n'est pas possible. Avec IB, tout se place dans un .xib, alorq que xCode compile le code. Tu ne peux pas modifier un .xib avec du code, ou créer du code avec IB . (je ne suis pas tout à fait sur de ça).
C'est à dire que tout ce qui s'y trouve est recréé en mémoire et peut être modifié. Les outlets permettent justement d'accéder aux objets instanciés pour pouvoir les modifier.
Cela signifie aussi que si on instancie les objets par le code, on ne peut pas les intégrer au XIB.
La question de savoir s'il vaut mieux travailler sous IB ou Xcode fait débat. En général, si on utilise des vues complexes, utiliser IB fait gagner du temps pour placer les objets.
Par exemple, si on utilise une UITableView, il n'est pas très intéressant de la créer par IB, parce que son contenu est de tout façon renseigné par le code (data source de la tableView). Par contre, il peut être judicieux d'utiliser IB pour créer la vue qui sert de modèle aux cellules de la tableView: en effet, si les cellules sont complexes, le placement des éléments est plus simple à la souris qu'en tapant les coordonnées dans le code, et aussi plus évolutif.
Je pense que la différence s'explique par la petite taille de l'écran de l'iPhone. À vrai dire, on n'a pas trop le choix de l'emplacement des éléments, et puis les trois-quarts des écrans sont constitués de tableViews. Assurément, les choses sont différentes sur l'iPad, et utiliser IB recouvre tout son intérêt.
Pour ce qui est de placer au pixel près il y a des champs prévus pour ça dans le 3 ème onglet de la fenêtre des propriétés. On peut aussi voir les coordonnées absolues ou relatives des objets si on appuie sur la touche option +/- majuscule ou bouger d'un pixel à la fois en utilisant les flèches (5 pixels avec majuscule enfoncée).
http://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/IB_UserGuide/Layout/Layout.html#//apple_ref/doc/uid/TP40005344-CH19-SW23
merci à vous pour vos avis précieux, je pense alors que avec le temps je me ferais ma propre idée selon mon utilisation mais au moins je sais que par le code on peut très bien s'en sortir aussi surtout pour démarrer avec de petites applications simples.
J'y reviendrais donc au moment où je voudrais passer un nouveau cap :P
Merci encore !
C'est quand même une limitation assez incroyable je trouve.