Ich baue ein UITableView programmgesteuert ohne NIB-Dateien hier. Ich mache aber etwas albernes, da meine navigationBar genauso gut aussieht wie mein UITableView. Das UITableView passt jedoch nicht ordnungsgemäß auf dem Bildschirm. Sie sehen etwa 20 Pixel zwischen der UINavigationBar und der UITableView. Ich setze mein Fenster des Backgroundcolor auf schwarz, wie Sie in diesem Screenshot sehen kann:Warum belegt mein UITableView nicht die Grenzen des Bildschirms?
Hier ist der Code ist, das Problem zu reproduzieren: Grenzen
- (void)loadView
{
[super loadView];
// TableViews that wish to utilize tableView footers/headers should override this method.
UITableView *aTableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain];
aTableView.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
aTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
aTableView.delegate = self;
aTableView.dataSource = dataSource;
self.tableView = aTableView;
[self.view addSubview:self.tableView];
[aTableView release];
// style navigation bar.
//self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
}
That habe es getan, aber ich würde es gerne weiter verstehen. Ich dachte, dass ApplicationFrame das Fenster ist, das den Bildschirm besetzt, minus der navigationBar? – Coocoo4Cocoa
Das Problem ist der Ursprung, aTableView verwendet self.view als Ursprung, also sollten Sie [self.view bounds] verwenden – CiNN