UIView-Hintergrundgrößenproblem

Ich füge ein UIImageView zum UIViewController hinzu, wie ich es normalerweise tun würde, wobei der Rahmen der Bildansicht derselbe ist wieself.view um sicherzustellen, dass das Bild die gesamte Ansicht abdeckt. Zwischen der Statusleiste und der Bildansicht befindet sich jedoch ein Abstand von ungefähr 20 Pixel, den ich anscheinend nicht beseitigen kann.

Ich habe versucht, die verschiedenen Frames mit NSLog zu protokollieren und erhalte die folgenden Ergebnisse:

 NSLog(@"ImageView => %@", NSStringFromCGRect([imageView frame]));
 NSLog(@"self.view => %@", NSStringFromCGRect(self.view.frame));
 NSLog(@"Screen Bounds => %@", NSStringFromCGRect([[UIScreen mainScreen] bounds]));
 NSLog(@"App window => %@", NSStringFromCGRect([[[[UIApplication sharedApplication] delegate] window] frame]));

[LaunchViewController.m: line 26] ImageView => {{0, 0}, {320, 548}} 
[LaunchViewController.m: line 27] self.view => {{0, 0}, {320, 548}} 
[LaunchViewController.m: line 28] Screen Bounds => {{0, 0}, {320, 568}}   
[LaunchViewController.m: line 29] App window => {{0, 0}, {320, 568}}

Die Ergebnisse zeigen, dass die Bildansicht tatsächlich deckend sein sollteself.view ohne Auffüllen zwischen sich selbst und der Statusleiste.

Der UIViewController ist der Root-View-Controller eines UINavigationControllers, und ich habe die Navigationsleiste so eingestellt, dass sie ausgeblendet ist. Ich dachte, dass dies möglicherweise das Problem verursachen könnte, aber nachdem der UINavigationController entfernt und durch nur den UIViewController ersetzt wurde, war die Polsterung immer noch vorhanden.

Hat jemand einen Rat zum Entfernen der Polsterung / hat dieses Problem schon einmal erlebt und eine Lösung gefunden?

Hier ist ein Bild, das zeigt, was los ist - der grüne Bereich ist das UIView (self.view) und der orangefarbene Bereich ist UIImageView.

[self.navigationController setNavigationBarHidden:YES];
[self.view setBackgroundColor:[UIColor greenColor]];

UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame];
[imageView setImage:[UIImage imageNamed:@"[email protected]"]];
[self.view addSubview:imageView];

Antworten auf die Frage(7)

Ihre Antwort auf die Frage