À l'aide d'un fichier XIB pour personnalisé Tableview en-Tête de Section
Je voulais utiliser un fichier xib pour personnaliser un tableview section dans xcode (objective-C), et ici, les ar mes fichiers:
SectionHeaderView.xib est une UIView avec un UILabel
SectionHeaderView.m
#import "SectionHeaderView.h"
@implementation SectionHeaderView
@synthesize sectionHeader;
@end
SectionHeaderView.h
#import <UIKit/UIKit.h>
@interface SectionHeaderView : UIView
{
IBOutlet UILabel *sectionHeader;
}
@property (nonatomic, strong) IBOutlet UILabel *sectionHeader;
@end
et dans mon MasterViewController.m
#import "SectionHeaderView.h"
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
SectionHeaderView *header = [[[NSBundle mainBundle] loadNibNamed:@"SectionHeaderView" owner:self options:nil] objectAtIndex:0];
return header;
}
Cela fonctionne bien jusqu'ici, cependant dès que j'ai mis XIB du propriétaire du fichier de classe personnalisée "SectionHeaderView" et connectez l'Étiquette "sectionHeader" je reçois le message d'erreur "NSUnknownKeyException". J'ai voulu relier ces pour que je puisse changer l'étiquette.texte par le code suivant avant de retourner le haeder:
header.sectionHeader.text = headerText;
Je suis à l'aide d'un scénario (xcode 4.5) pour la MasterViewController.
Serais reconnaissant de toute aide
OriginalL'auteur Ali | 2012-09-23
Vous devez vous connecter pour publier un commentaire.
Essayez ceci: je l'ai testé dans mon application et de son travail:
OriginalL'auteur user1113101
Vous pouvez créer un UITableViewCell sous-classe avec un associé xib, et l'utiliser comme en-tête de section. Dans cet exemple, je vais l'appeler CustomTableViewHeaderCell.h/.m/.xib et de vous montrer comment changer le texte d'une étiquette à l'intérieur de cette cellule.
Créer une prise de propriété dans votre CustomTableViewHeaderCell.h
@property (faible, nonatomic) IBOutlet UILabel *sectionHeaderLabel;
Ajouter un UITableViewCell dans le vide CustomTableViewHeaderCell.xib
et de définir la classe de l'élément à CustomTableViewHeaderCell
à partir de l'Identité de l'Inspecteur.
Également l'Identifiant (attribut de l'inspecteur de la cellule) par exemple
CustomIdentifier.
Faites glisser une étiquette dans l'Affichage du Contenu et de connecter la sortie de l'
CustomTableViewHeaderCell (Pas le propriétaire du fichier!).
Puis dans chaque ViewController vous souhaitez utiliser le tableau de la section affichage de l'en-tête de cellule:
1) Enregistrer votre xib à la réutilisation de l'identificateur (probablement dans le viewDidLoad):
2) Remplacer viewForHeaderInSection à affichage personnalisé de votre en-tête de cellule vue
OriginalL'auteur andreacipriani
Vous pouvez résoudre ce problème en un de la manière suivante:
1) vous avez dérivé SectionHeaderView de
UIView
. dériver cette classe avecUIViewController
à la place. Cela permettra de résoudre votre problème.2) au Lieu d'utiliser
IBOutlet
propriété, Jeu de Tag deUILabel
en vue (disons 101).Jeter SectionHeaderview classe.
Garder SectionHeaderView.XIB, supprimer .m et .h uniquement les fichiers.
utilisez le code suivant ins Viewforheader méthode de MasterViewController classe:
essayez ceci: je l'ai testé dans mon application et de son travail: "code", NSArray *arrviw= [[NSBundle mainBundle] loadNibNamed:@"SectionHeaderview" propriétaire:auto options:nil]; UIView *view = [arrviw objectAtIndex:0]; UILable *lblTitle =[vue viewWithTag:101]; lblTitle.text =@"le Texte que vous souhaitez définir"; return;
Quels sont les avantages pour la fixation d'un UIViewController comme en-tête pour une autre UIViewController? L'en-tête est en fait une UIView. La question initiale était de savoir comment charger la plume fichier d'en-tête.
OriginalL'auteur user1113101