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];