UIView problem z wymiarowaniem tła

Dodaję UIImageView do UIView UIViewController, tak jak normalnie, z ramką widoku obrazu jest taka sama jakself.view aby upewnić się, że obraz pokryje cały widok. Jednak między paskiem stanu a obrazem jest mniej więcej 20px wypełnienie, którego nie mogę się pozbyć.

Wypróbowałem NSLogging w różnych ramkach i otrzymałem następujące wyniki:

 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}}

Wyniki pokazują, że widok obrazu powinien w rzeczywistości obejmowaćself.view bez dopełnienia między sobą a paskiem stanu.

UIViewController jest kontrolerem widoku głównego kontrolera UINavigationController i ustawiłem pasek nawigacji, aby był ukryty. Pomyślałem, że może to być przyczyną problemu, jednak po usunięciu kontrolera UINavigationController i zastąpieniu go tylko sterownikiem UIViewControlding padding nadal tam był.

Czy ktoś ma jakieś porady dotyczące usuwania dopełnienia / doświadczył tego problemu wcześniej i ma naprawę?

Oto obraz pokazujący, co się dzieje - zielony obszar to UIView (self.view), a pomarańczowy obszar to 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];

questionAnswers(7)

yourAnswerToTheQuestion