Я добавляю UIImageView в UIView UIViewController, как обычно, с рамкой изображения, равной self.view
, чтобы убедиться, что изображение будет охватывать весь вид. Тем не менее, есть примерно 20px отступы между строкой состояния и изображением, от которого я не могу избавиться.Проблема выбора размера фона UIView
Я пытался 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:@"[email protected]"]];
[self.view addSubview:imageView];
Вы делаете это на viewDidLoad или viewDidAppear? – Bartu
-viewDidLoad - перед вызовом супер. –
попробуйте переместить его в viewDidAppear, в viewDidLoad, если вы используете xib, размер представления основан на представлении xib. – Bartu