tableView.tableHeaderView gesetzt, aber nicht gezeichnet
immer, wenn ich meine tableHeaderView ich bin nicht zu sehen, es in den Simulator.
Wenn ich hinzufügen, dass es wie eine Untersicht, es endet immer gezeichnet unter der überschrift des Abschnitts. Jede Idee, was fehlt mir hier?
Ich habe eine XIB-Datei. Ich sehe keine Eigenschaften, die im IB zu beeinflussen headerViews obwohl.
- (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>>
Bearbeiten:
StandardTableHeaderView.m init-Methode:
- (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;
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst dein code sieht gut aus.
2 mögliche Probleme:
self.tableView
ist nicht festgelegttableHeaderView
wird außer Kraft gesetzt, nachviewDidLoad
NSLog(@"self.tableView = %@, self.tableView.tableHeaderView = %@", self.tableView, self.tableView.tableHeaderView);
direkt nach derself.tableView.tableHeaderView = headerView;
innenviewDidLoad
und sehen, was du in der log...[self.tableView reloadData];
direkt nach dem setzen der header-Ansicht...Ich hatte das gleiche problem, und bemerkte, dass alle tableViewHeader, dass ich in meine Feder würde nicht angezeigt, wenn ich initialisiert mein tableview aufrufen:
Aber Sie magisch erschien, ohne Anstrengung, wenn ich initialisiert mein tableview mit:
Seltsam.
Hinweis! Wenn Sie erwarten, dass die Tabelle-Ansicht, um den Rahmen der header-anzeigen für Sie, Sie sind Irre und sehr seltsame Ergebnisse.
Hatte ich mir gesetzt, um
CGRectZero
denken, es würde sich von selbst lösen, aber das Ding würde nicht erscheinen, wenn es täte, würde es scheinen, versteckt in unter der navbar oder kleben nach unten in die erste Zelle und so.Habe ich das setup von
tableHeaderView
imViewDidLoad
undloadView
Methoden - es hat nicht funktioniert: ein Teil der anzeigen war weiß, nicht vollständig sichtbar. Dann habe ich versucht, es zuViewDidAppear
- und es funktionierte:viewDidLoad
und alles hat gut funktioniert.... hmmm. Naja trotzdem danke 🙂Ich hatte ein problem, wo ich war putting ein Blick in einen tableviewcontroller als header und es würde nicht zeigen, bis bei mir lief die app, das problem war, habe ich den header, wenn es kein Prototyp Zellen. wenn Sie fügen Sie mindestens eine Prototyp-Zelle, fügen Sie dann den header oben, dann löschen Sie die Zelle (wenn es sein muss), er registriert es als headerview richtig
wenn Sie UIView innerhalb der UITableView in das storyboard, und Sie versuchen, die tableView.tableHeaderView = YOUR_VIEW, es wird nicht funktionieren. Sie haben zum ersten drag-drop, die Ansicht von außen view-controller erstellen Sie Ihre Steckdose und legen Sie dann
tableView.tableHeaderView = YOUR_VIEW
Versuchen Sie UITableViewDelegate in Ihrem Kopf und platzieren Sie den folgenden code in Ihre .m-Datei.