2010-10-06 7 views
10

Nouveau sur iOS, issu du monde Java/Swing, où je suis habitué à créer des interfaces utilisateur, en laissant les composants se dimensionner et en utilisant différents gestionnaires de disposition intelligents pour arranger les choses.Meilleures pratiques pour la mise en page programmatique iOS/monotouch

Il semble déjà clair que la méthode iOS est d'utiliser intensivement Interface Builder, avec beaucoup de dimensionnement et de positionnement fixes. Je ne suis pas sûr qu'IB arrivera naturellement, mais je suppose que les mises en page fixes ont du sens étant donné que vous travaillez avec un espace limité et une taille de fenêtre fixe. Il semble toujours que j'écris beaucoup de messages, et que je transgresse DRY, et ainsi de suite. Quelqu'un peut-il me donner un bon aperçu sur la mise en page iOS IU, en particulier les interfaces utilisateur programmatiques?

Répondre

20

Vous n'avez pas vraiment besoin d'utiliser IB pour écrire des applications MonoTouch. Je ne fais presque jamais. L'API CocoaTouch est assez simple et directe à développer.

Je n'ai pas vraiment trouvé de writeup sur le développement de l'interface utilisateur autre que la documentation Apple (ce qui est vraiment bien, par ailleurs, la lecture digne), donc voilà quelques conseils, d'après mon expérience:

  • L'héritage est la clé pour maintenir le code propre. Vous pouvez hériter de n'importe quelle classe de l'API, par exemple des boutons, des contrôleurs, des vues, etc. Héritez et ajoutez vos personnalisations dans ces classes. Ne pas tout pousser dans l'AppDelegate comme le montrent de nombreux exemples. Tu me remercieras plus tard.
  • Ai-je déjà mentionné l'héritage?
  • La seule chose que iOS n'a pas est un gestionnaire de disposition, donc si vous êtes habitué à Java comme vous l'avez mentionné, cela va sembler un peu étrange. Différent de ce que les gens de Java pensent, ce n'est pas un gros problème. UITableViews aide énormément avec ceci (voir point suivant).
  • Un grand nombre d'applications iPhone sont construites au dessus de UITableViewController, même les applications qui ne ressemblent pas à des tables. C'est un excellent framework pour tout ce qui touche au défilement. Apprenez à bien l'utiliser. Presque tout ce qui défile verticalement est un UITVC. Suivez les instructions qui définissent quand vous créez et quand vous disposez des cellules et des objets.
  • Faites attention chaque fois que vous ajoutez un emplacement de cadre dans votre contrôle. Au lieu de définir des valeurs codées en dur, essayez d'utiliser des décalages provenant d'autres emplacements (x + 40, par exemple) autant que possible.
  • Assurez-vous d'ajouter vos vues au bon récipient si nécessaire. Par exemple, si vous ajoutez une vue globale "Chargement", ajoutez-la à l'objet Fenêtre, tandis que si vous ajoutez une image sur le côté gauche d'une cellule de tableau, utilisez ContentView. iOS modifie automatiquement ces vues spéciales (l'écran de redimensionnement s'adapte à la barre "sur appel" en haut ou à la rotation du téléphone).
  • Miguel de Icaza a créé un excellent framework pour gérer les formulaires et les tables, appelé MonoTouch Dialog. Take a look, and enjoy.
+0

Merci - c'est utile. Je vais continuer à essayer de comprendre IB pendant un moment, ne serait-ce que parce qu'une grande partie de la documentation suppose que vous l'utilisez, mais je vais probablement passer au codage manuel avant longtemps. –