Mise en œuvre d'un tableau personnalisé de la section d'en-tête via Storyboard et de nouvelles Xib
Voici ce que j'ai fait:
J'ai créé un custom xib
fichier qui a une petite UIView utilisé pour un tableau personnalisé en-tête de section.
J'ai classé la coutume xib
fichier.
Je veux ajouter ceci à un tableView que l'en-tête. J'ai regardé un peu de ressources, mais ils semblent être obsolète ou informations manquantes.
À la recherche dans la documentation, je vois une référence à l'ajout d'un en-tête personnalisé avec les instructions suivantes:
Pour faire de l'affichage de la table conscient de votre en-tête ou le pied de page, vous devez l'enregistrer. Pour ce faire, utilisez la registerNib:forCellReuseIdentifier: ou registerClass:forCellReuseIdentifier: méthode de UITableView.
Quand j'ai ajouté une tableView à ma vue storyboard, il était facile de lui attribuer une réutilisation numéro d'identification dans XCode. J'ai même été en mesure de créer une cellule personnalisé xib
fichier et il y avait aussi un endroit pour une réutilisation numéro d'identification dans XCode.
Quand j'ai créé la coutume UIView pour la section d'en-tête, il n'a pas d'entrée pour la réutilisation de l'identificateur. Sans cela, je n'ai aucune idée de comment l'utiliser registerNib:forCellReuseIdentifier
.
Plus d'informations:
J'ai un storyboard scène qui a un tableView
à l'intérieur. Le tableView
est d'une classe personnalisée qui est lié et le tableView
objet a une prise de courant dans la vue parent du ViewController
fichier.
Le parent ViewController
est à la fois le UITableViewDataSourceDelegate
et UITableViewDelegate
. Encore une fois, j'ai été en mesure de mettre en œuvre la coutume des cellules sans problème. Je ne peux même pas modifier l'en-tête de quelque façon d'ailleurs le titre.
J'ai essayé d'appeler la méthode [[self tableHeaderView] setBackgroundColor:[UIColor clearColor]];
de la coutume tableView
classe et rien ne se passe. J'ai essayé d'utiliser cette méthode dans le parent ViewController
classe en utilisant le nom de la prise de la sorte:
[[self.tableOutlet tableHeaderView] setBackgroundColor:[UIColor clearColor]];
Toute aide serait grandement appréciée.
EDIT: (ne Peut pas changer le fond transparent)
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
HeaderView *headerView = [self.TableView dequeueReusableHeaderFooterViewWithIdentifier:@"tableHeader"];
//Set Background color
[[headerView contentView] setBackgroundColor:[UIColor clearColor]];
//Set Text
headerView.headerLabel.text = [self.sectionArray objectAtIndex:section];
return headerView;
}
OriginalL'auteur Alex | 2013-01-28
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de l'identifiant dans la xib -- vous avez juste besoin d'utiliser le même identifiant lors de votre inscription, et quand vous vous retirer de la vue d'en-tête. Dans la méthode viewDidLoad, je me suis inscrit à la vue comme:
Puis, dans la délégué méthodes:
xib
fichier à modifier le texte de l'en-tête. J'ai l'étiquette d'une prise de courant dans l'en-tête de la catégorie fichiers (CustomHeader.h, CustomHeader.m).vous devez utiliser headerView.contentView.backgroundColor = ... pour changer la couleur d'arrière-plan.
J'ai essayé de l'insertion, et il reste le même. Encore une fois, le réglage de l'personnalisé le texte de l'étiquette fonctionne très bien. J'ai posté l'extrait de code dans un montage.
c'est parce que la valeur par défaut de l'en-tête de la vue a également un backgroundView bien avec ce regard, de sorte que vous pouvez voir à travers si votre couleur est claire. Si vous ajoutez, headerView.backgroundView = [[UIView alloc]initWithFrame:headerView.image]; vous mettrez dans une nouvelle vision claire.
oui, il existe un tableau d'en-tête qui permet de faire défiler jusqu'à l'affichage de la table. Il ne colle pas au sommet comme les en-têtes de section.
OriginalL'auteur rdelmar
Sur le problème de la couleur de fond (Sauf si vous voulez transparent):
Vous pouvez créer un
UIView
qui occupe l'ensemble de la vue, puis changer la couleur de fond.Si vous ne voulez pas que les autres sachent ce qui se passe, vous pouvez remplacer la propriété backgroundColor:
OriginalL'auteur Lord Zsolt