tableView.tableHeaderView être ensemble mais ne pas les dessiner
chaque fois que j'ai mis mon tableHeaderView je ne suis pas le voir dans le Simulateur.
Si je l'ajouter en tant que sous-vue, il finit par obtenir dessiné sous l'en-tête de section. Toute idée de ce que je suis en manque ici?
J'ai un fichier XIB. Je n'ai pas vu toutes les propriétés de l'IB à affecter headerViews.
- (void)viewDidLoad {
[super viewDidLoad];
MyTitleView *titleView = [[MyTitleView alloc] initWithFrame:CGRectMake(60,0,260,40)];
titleView.label.text = @"My Title";
self.navigationItem.titleView = titleView;
[titleView release];
StandardTableHeaderView *headerView = [[StandardTableHeaderView alloc] initWithFrame:CGRectMake(0,0,320,44)];
self.tableView.tableHeaderView = headerView;
// [self.view addSubview:self.tableView.tableHeaderView];
// [headerView release];
NSLog(@"Header: %@",self.tableView.tableHeaderView); //Logs ] Header: <StandardTableHeaderView: 0x5a508b0; frame = (0 0; 320 44); layer = <CALayer: 0x5a51130>>
Edit:
StandardTableHeaderView.m méthode init:
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
self.backgroundColor = [UIColor redColor];
self.label = [[UILabel alloc] initWithFrame:CGRectMake(frame.origin.x,0,frame.size.width,frame.size.height)];
self.label.backgroundColor = [UIColor clearColor];
self.label.textColor = [UIColor whiteColor];
self.label.font = [UIFont fontWithName:@"Helvetica" size:16];
[self addSubview:self.label];
}
return self;
}
OriginalL'auteur quantumpotato | 2010-08-06
Vous devez vous connecter pour publier un commentaire.
Tout d'abord votre code semble correct.
2 problèmes:
self.tableView
n'est pas définietableHeaderView
est remplacée aprèsviewDidLoad
Pour l'instant je vais essayer de le redimensionnement de la tableview et l'ajout de l'en-Tête de la Vue comme une vue séparée..
Comment avez-vous vérifié que la tableView propriété est définie (non nul)? Le fait que les cellules sont tirés ne veut pas nécessairement dire que la tableView propriété n'est pas nul... essayez d'ajouter
NSLog(@"self.tableView = %@, self.tableView.tableHeaderView = %@", self.tableView, self.tableView.tableHeaderView);
à droite après leself.tableView.tableHeaderView = headerView;
à l'intérieur deviewDidLoad
et voir ce que vous obtenez dans le journal...dans mon cas, j'ai eu: l'auto.tableView = <UITableView: 0x801a600; frame = (0 0; 320 367); clipsToBounds = OUI; opaque = NON; autoresize = W+H; couche = <CALayer: 0x6e27dc0>; contentOffset: {0, 0}>, de soi.tableView.tableHeaderView = <UIView: 0x6e27df0; frame = (0 0; 320 145); autoresize = RM+BM; couche = <CALayer: 0x6e27e20>>, mais toujours à l'affiche pas
Peut-être que la vue de la table d'en-tête est défini mais pas dessiné. C'est le deuxième cas dans ma réponse. Essayez d'appeler
[self.tableView reloadData];
droite après le réglage de la vue d'en-tête...OriginalL'auteur Michael Kessler
J'ai eu le même problème et a remarqué que tout tableViewHeader que j'ai défini dans ma PLUME ne semble pas si j'ai initialisé mon tableview en invoquant:
Mais il est apparu comme par magie sans effort quand j'ai initialisé mon tableview en utilisant:
Bizarre.
OriginalL'auteur Rob
Remarque! Si vous vous attendez à la vue de la table pour définir le cadre de la vue d'en-tête pour que vous vous êtes trompé et très bizarre résultats.
J'ai eu la mienne ensemble de
CGRectZero
à penser que ça serait résoudre de lui-même, mais la chose ne s'affiche pas et quand il le fait, il semble rentré sous la barre de navigation ou de coller vers le bas dans la première cellule et ces.OriginalL'auteur Kalle
J'ai essayé de mettre de l'installation de
tableHeaderView
dansViewDidLoad
etloadView
méthodes - ça n'a pas de travail: une partie de la vue était blanc, pas visible entièrement. Ensuite, j'ai essayé de le mettre àViewDidAppear
et il a travaillé:viewDidLoad
et tout a bien fonctionné.... hmmm. Merci bien de toute façon 🙂OriginalL'auteur wzbozon
J'ai eu un problème lorsque je met un point de vue à l'intérieur d'un tableviewcontroller comme en-tête, et il ne serait pas montrer quand j'ai couru à l'application, le problème, j'ai ajouté l'en-tête quand il n'y avait pas de prototype de cellules. si vous ajoutez au moins un prototype de cellule, puis ajouter l'en-tête ci-dessus, puis supprimer la cellule (si besoin), il s'inscrit comme un headerview correctement
OriginalL'auteur Fonix
lorsque vous UIView à l'intérieur de la UITableView dans le storyboard et vous essayez de définir tableView.tableHeaderView = YOUR_VIEW, ça ne marchera pas. Vous devez d'abord faire un glisser-déposer de ce point de vue en dehors de la vue du contrôleur de créer sa sortie et puis définissez
tableView.tableHeaderView = YOUR_VIEW
OriginalL'auteur swapnali patil
Essayez de définir UITableViewDelegate dans votre tête et placez le code suivant dans votre .m fichier.
OriginalL'auteur chongsj