2009-07-20 7 views
22

Ok donc je suis vraiment nouveau pour le développement de l'iphone et je suis allé assez loin pour ma connaissance. J'ai juste besoin d'aide pour décider comment programmer ces images 4-6 dans mon projet.UIView vs UIViewController

Je veux fondamentalement faire une bande dessinée avec l'utilisateur étant capable de glisser d'une image à l'autre. Est-ce que toutes ces images devraient être dans UIVIEW ou UIViewController? Et tous les conseils sur la connexion de ces images afin que je puisse ensuite ajouter le code pour le toucher serait génial!

Répondre

41

Un UIViewController ne peut rien afficher; il coordonne simplement l'affichage d'un UIView. Donc, les images réelles devront être faites dans un UIView. De plus, votre UIView est responsable de la reconnaissance des touches, des gestes, etc. la réaction réelle de votre programme devrait être à la hauteur du UIViewController. En d'autres termes, vous apprendriez à une sous-classe UIView comment reconnaître un glissement vers la gauche ou la droite, et une fois qu'elle aurait décidé qu'un glissement aurait eu lieu, elle informerait votre sous-classe UIViewController de cet événement. Le contrôleur décidera alors quelle image sera affichée et indiquera à la vue de l'installer. Ceci est une partie du modèle Model-View-Controller. C'est un modèle bien connu et largement utilisé dans le développement de l'iPhone, donc vous seriez bien servi pour lire à ce sujet.

4

Vous utiliserez les deux. Le développement de Cocoa Touch suit la méthodologie MVC (Model, View, Controller). C'est un moyen de séparer la logique du code et les éléments de l'interface utilisateur. UIView est où vous gérez à quoi il ressemble, UIViewController est la classe où vous gérez les événements. Si vous voulez le moyen le plus simple de parcourir plusieurs pages de contenu, regardez dans UIPageControl.

4

Les images doivent être ajoutées (via addSubview) à un objet UIView ou d'un objet sous-classé de UIView tels que UIControl, UIScrollView, etc.

Vous n'avez probablement besoin de ne pas créer une classe de vue de votre propre, par exemple, MyView. J'ai découvert que la seule véritable raison de créer une vue personnalisée est l'efficacité ou le contenu hautement dynamique tel que du texte ou des images qui se déplacent dans la vue. Si vous ne prévoyez pas d'implémenter la fonction drawRect, ne vous embêtez pas avec une vue personnalisée.

Voulez-vous sous-classer le UIViewController. Il gère le comportement de votre vue et est (généralement) le meilleur endroit pour composer la vue qu'il contrôle. UIPageControl est probablement le moyen le plus simple d'implémenter le comportement de balayage, mais cela peut être difficile - lisez attentivement la documentation.

Questions connexes