2010-07-13 4 views
0

Mon développement de l'iPhone monte d'un cran et je regarde l'interface utilisateur. Nous pensons avoir quelques fonctionnalités d'interface-y intéressantes - des choses comme glisser et déposer des images les unes sur les autres à partir d'une liste de galerie, ou similaire.Interfaces iPhone plus riches avec les composants de la bibliothèque?

Jusqu'où s'étend l'interface de base de l'iPhone? Est-ce que la plupart des gens créent leurs propres interfaces et codes, et si oui, quelle est la base? CoreGraphics? OpenGL?

Je ne veux pas réinventer la roue, mais je ne veux pas non plus prendre une option trop compliquée si quelqu'un a déjà fait le travail.

Répondre

0

Il existe plusieurs niveaux d'interfaces basées sur Cocoa. En règle générale, je recommande de travailler au plus haut niveau d'abstraction qui répond à vos besoins de présentation et de performance.

Les éléments UIKit de base que vous pouvez placer à l'aide d'Interface Builder ou de code sont conçus pour gérer les cas les plus courants dans l'interface d'une application. Ceux-ci fournissent un certain degré de personnalisation, selon leur type, mais ce que vous voyez est généralement tout ce que vous obtenez. Sur l'iPhone, Apple essaie même de maintenir un certain look et sens pour ces éléments de stock en rejetant les applications lors de la révision qui les utilisent d'une manière qui contredit les directives d'interface humaine.

Le niveau inférieur suivant correspond à des vues UIV personnalisées. Ceux-ci peuvent être faits pour ressembler à n'importe quoi à travers l'utilisation du dessin de Quartz dans la méthode -drawRect:. Vous pouvez effectuer votre propre manipulation tactile en substituant des méthodes telles que –touchesBegan:withEvent: ou en utilisant les nouveaux UIGestureRecognizers. Compte tenu du niveau de personnalisation que vous pouvez faire ici, c'est là que la plupart des gens s'arrêtent en peaufinant leurs interfaces.

Vous pouvez aller un peu plus bas en travaillant avec les couches et les animations Core Animation. Vous ne gagnez pas grand-chose, en termes de performances, en utilisant CALayers au lieu de UIViews sur l'iPhone, mais ils peuvent être utiles si vous voulez créer des éléments visuels qui utilisent le même code sur Mac et iPhone. Des animations personnalisées peuvent être requises si vous voulez faire quelque chose de plus que d'animer linéairement une vue entre deux états. Vous pouvez même faire un peu de travail 3D en utilisant Core Animation. Enfin, il existe OpenGL ES pour l'affichage de scènes 3D complètes et pour un affichage graphique très performant. Ceci est à peu près aussi proche du métal que vous obtiendrez en ce qui concerne le système d'affichage de l'iPhone, et cela se reflète dans la quantité et la complexité du code que vous devez écrire. Pour un travail en 3D complexe, c'est ce que vous aurez besoin d'utiliser, mais pour le 2D et même le 3-D rudimentaire, je recommande de regarder d'abord Core Animation en raison du code qu'il peut vous sauver. Si la performance est inacceptable, alors vous devriez aller à OpenGL ES. Maintenant, juste parce que vous devez utiliser une de ces technologies pour travailler avec une partie de votre interface ne signifie pas qu'elle ne peut pas coexister avec les autres. Les UIViews sont soutenus par des couches Core Animation, et même OpenGL ES rend dans un CALayer qui peut être placé dans une vue. Encore une fois, utilisez le plus haut niveau d'abstraction approprié pour cette partie de votre interface.

+0

Impressionnant et détaillé. Merci beaucoup. – mtrc

Questions connexes