2011-01-19 8 views
3

Je suis un débutant dans la programmation iPhone. Ma première application est un UITableViewController mais maintenant je voudrais expérimenter un peu. L'idée est de créer une mise en page personnalisée qui ressemblerait à ceci:iPhone UITableViewController mise en page personnalisée

La mise en page:

--------------------- 
Image  | Button  
--------------------- 
UICalendar 
--------------------- 
UITableView 
--------------------- 
Button  | Button 
--------------------- 

QUESTION 1: Comme vous pouvez le voir, je voudrais ajouter quelques elemnts supplémentaires de l'interface utilisateur. Tous les didacticiels que j'ai vus décrivent UITableViewController comme un seul UITableView (aucun autre élément d'interface utilisateur inclus dans un contrôleur). Donc, ma question serait: est-il possible d'étendre UITableViewController pour avoir ce type de mise en page? Quelle est la bonne façon de le faire?

QUESTION 2: Pour UITableViewController, je n'utilise pas de fichier XIB mais certaines personnes le font. Pourquoi utiliser le fichier XIB lors de la création d'un UITableViewController? Quels sont les bénéfices? Quelle est la meilleure pratique?

MISE À JOUR: En fait, je pense à un contrôleur séparé pour UICalendar (UICalendarController) et UITableView (UITableViewController). Je ne sais pas comment l'appliquer.

Thx.

Répondre

6

L'approche standard pour le genre de chose que vous essayez de faire est de ne pas sous-classe UITableViewController ou d'utiliser un fichier XIB pour définir l'interface pour la vue liée à un UITableViewController, mais au lieu d'utiliser un UIViewController avec un XIB fichier qui se trouve à y inclure un UITableView.

Vous devrez implémenter les protocoles UITableViewDataSource et UITableViewDelegate dans votre sous-classe UIViewController, mais ce n'est pas difficile.

UITableViewController est une classe quelque peu fragile et limitée, malheureusement. Il n'est pas difficile de créer vos propres classes qui utilisent UITableView s, mais il n'est pas intuitif pour beaucoup de gens que la bonne approche ne commence pas par UITableViewController.

+0

Près de ce que je veux :). J'ai fait un exemple avec les protocoles et cela a fonctionné. Ce que je ne comprends pas, c'est quand je tente de séparer la fonctionnalité de UITableView à un nouveau contrôleur. Est-ce possible? Plase voir mon message de mise à jour. – xpepermint

0

Dans iPhone, vous pouvez créer chaque contrôle par programmation ou vous pouvez utiliser XIB. XIB rend le travail simple en utilisant les fonctionnalités natives du contrôle. Si vous souhaitez étendre le contrôle et ses fonctionnalités, créez des classes personnalisées et créez-les manuellement.

En arrivant à UITableView, est votre représentation pour une cellule? Sinon, vous pouvez créer des cellules personnalisées et les ajouter à la vue de la table. Pour créer des cellules de vue de table personnalisées, vous devez étendre votre classe depuis UITableViewCell et les implémenter.

+0

Devrais-je utiliser UITableViewController pour mon cas ou UIViewController ou autre? – xpepermint

Questions connexes