通常どおり、UIViewController の UIView に UIImageView を追加しself.view
ます。画像がビュー全体をカバーするように、画像ビューのフレームは同じです。ただし、ステータスバーとimageViewの間に約20pxのパディングがあり、取り除くことができないようです。
さまざまなフレームを NSLogging してみましたが、次の結果が得られました。
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}}
結果は、イメージ ビューが実際にはself.view
、それ自体とステータス バーの間にパディングがまったくないことを示しています。
UIViewController は UINavigationController のルート ビュー コントローラーであり、ナビゲーション バーを非表示に設定しました。これが問題を引き起こしているのではないかと思いましたが、UINavigationController を削除して UIViewController だけに置き換えた後も、パディングは残っていました。
パディングを削除するためのアドバイスはありますか / 以前にこの問題を経験したことがあり、修正されていますか?
何が起こっているかを示す画像を次に示します。緑色の領域は UIView ( self.view
) で、オレンジ色の領域は UIImageView です。
[self.navigationController setNavigationBarHidden:YES];
[self.view setBackgroundColor:[UIColor greenColor]];
UIImageView *imageView = [[UIImageView alloc] initWithFrame:self.view.frame];
[imageView setImage:[UIImage imageNamed:@"Orange-568h@2x.png"]];
[self.view addSubview:imageView];