Ich habe eine UITableViewController
. Ich erstelle eine benutzerdefinierte headerView für sie tableView
im loadView
Methode ist wie so:Custom UITableView headerView verschwindet nach Speicher Warnung
(void)loadView {
[super loadView];
UIView* containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, height * 2)];
containerView.tag = 'cont';
containerView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(padding, height, width, height);
... //configure UIButton and events
UIImageView* imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"] highlightedImage:[UIImage imageNamed:@"highlight.png"]];
imageView.frame = CGRectMake(0, 0, width, height);
... //configure UIImageView
[containerView addSubview:button];
[containerView addSubview:imageView];
self.tableView.tableHeaderView = containerView;
[imageView release];
[containerView release];
}
Keiner der anderen Methoden (viewDidLoad/Unload, usw.) sind überlastet.
Dieser Controller befindet sich in einer Registerkarte. Wenn ich zu einer anderen Registerkarte wechsle und eine Speicherwarnung simuliere und dann zu dieser Registerkarte zurückkehre, fehlt in meiner UITableView
mein custon header. Alle Zeilen/Abschnitte sind sichtbar, wie ich es erwarten würde. Wenn ich einen BP in den Code loadView
einfüge, sehe ich, dass er aufgerufen wird, wenn ich nach der Speicherwarnung zu der Registerkarte zurückwechsle, und trotzdem kann ich die Kopfzeile nicht sehen.
Irgendwelche Ideen über das, was mir hier fehlt?
EDIT: Dies geschieht auf dem Gerät und dem Simulator. Auf dem Gerät lasse ich einfach eine Speicherwarnung durch Öffnen einer Reihe verschiedener Apps, während sich meine im Hintergrund befindet.
Ich denke, Sie Code in Ihren ViewDidUnload() -Methode wie dieses: self.tableView.tableHeaderView = nil; ? –
Nein. "Keine der anderen Methoden (viewDidLoad/Unload, usw.) sind überlastet." Brauche ich es? Warum? – psychotik
Verwirrt. Hoffe, jemand anderes kann helfen. –