iPhone UITableView avec une zone d'en-tête
J'ai une vue qui a été créée avec l'ensemble de la valeur par défaut UITableView
trucs, mais maintenant, j'ai besoin d'ajouter un en-tête ci-dessus où la UITableView
est (donc le UITableView
défile normalement, mais le haut 100px de l'écran, ou si vous n'avez statique en-tête de contenu). Je ne vois pas où je peux redimensionner la UITableView
de l'IB, et je ne suis pas sûr de la façon de le faire.
Personne ne sait?
Vous devez vous connecter pour publier un commentaire.
Pourquoi n'utilisez-vous pas la UITableView à condition d'en-tête?. Comme suit:
En outre, vous pouvez redimensionner votre vue de la table de l'IB en faisant glisser les bords.
Vous pouvez utiliser
UITableViewDelegate
méthodes pour créer un en-tête personnalisé pour une table et de spécifier la hauteur, à savoirtableView:viewForHeaderInSection:
ettableView:heightForHeaderInSection:
. Vous pouvez ajouter ce que vous voulez à la vue. Voici un exemple qui ajoute une aligné à droiteUILabel
:UITextAlignment
est obsolète, utilisezNSTextAlignment
au lieuLorsque vous ajoutez un
UIView
ou un de ses sous-classes sur leUITableView
à l'aide de l'IB (il suffit de glisser une UIView et déposez-la sur la partie SUPÉRIEURE deUITableView
de la vôtre), il ajoute automatiquement queUIView
composant et en fait le "tableHeader" composant.Chaque
UITableView
a untableHeader
et untableFooter
composant réservé...De cette façon, le nouveau point de vue, une partie de la UITable, et faites défiler avec ou apparaître/disparaître ou tout ce que vous faites à la table. Vous pouvez modifier sa propriété hidden si vous avez besoin d'un comportement conditionnel.
D'autre part, si vous voulez l'en-tête de la vue de rester sur place, comme la table des parchemins, alors il est mieux pour rendre le tableau plus petit et mettre l'en-tête au-dessus d'elle comme suggéré dans d'autres réponses...
J'ai enfin résolu ce problème de la bonne façon, sans modifier la classe de base. La réponse d'ajouter le point de vue de la mère nav contrôleur est bien, mais les transitions de l'air horrible.
Le correctif est en fait facile. L'astuce est de créer des setter et getter pour soi.tableView de la propriété. Puis, dans loadView, vous remplacez la vue avec une nouvelle UIView et ajouter la tableView à elle. Ensuite, vous êtes libre d'ajouter des sous-vues autour de la tableView. Voici comment on fait:
Dans l'en-tête:
Dans .m:
Profitez-en!
Vous aurez à intégrer la
UITableView
dans unUIView
alongwith un autre point de vue (auquel on se réfère comme en-tête de l'article).Donc, le
UIView
aura 2 sous-vues. La vue d'en-tête, suivi par l'affichage de la table.UIView
(parent)UIView
(en-tête)UITableView
(table)Espère que cette aide.
J'aime la réponse de noodl_es (upvoted), car elle offre les fonctionnalités et le comportement que vous voulez, mais vous n'avez pas à vous soucier de redimensionnement de la UITableView: qui est géré automatiquement pour vous. Cependant, la solution est plus appropriée que si les informations d'en-tête se rapporte spécifiquement à la première section de la table (ou si la table n'a qu'un seul article). Si la table a plus d'une section, puis l'en-tête de la deuxième section de repousser l'en-tête de la première section lorsque défiler vers le haut, et donc la vue d'en-tête n'apparaîtra pas à se rapportent à l'ensemble de la table.
Trouvé une solution à iphonedevsdk
Au lieu de faire ceci:
ce faire
Supposons que votre
UITableViewController
et un xib avec vous simple
UITableView
encore définie, vous pouvez faire en tant que Mihir dit substitution de laloadView
méthode comme ceci:...et c'est tout. Vous avez un
UITableView
fixe avec en-tête et pied de page.PS. Vous pouvez maintenant utiliser votre xib vues personnalisées comme l'en-tête et pied de page vues.