Это уже опубликованный вопрос, но мне нужно понять, что происходит со следующим сценарием.Я разрабатываю приложение для iPad и создал UINavigationController
, как показано ниже (в целях тестирования).
UINavigationController* navigationController = [[UINavigationController alloc] init];
navigationController.view.backgroundColor = [UIColor redColor];
После создания я добавил представление UINavigationController
как подпредставление * 1006.*.
[self.view addSubview:navigationController.view];
Результат отображается на следующем изображении:
Как видите, между строкой состояния ипанель навигации UINavigationController
.Поскольку вид UINavigationController
красный, кажется, что рамка навигационной панели имеет этот пробел.
Я нашел хак для устранения проблемы.Установив рамку для UINavigationController
, панель навигации переместится в правильное положение.
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
CGRect frameRect = CGRectMake(navigationController.view.frame.origin.x, navigationController.view.frame.origin.y - statusBarFrame.size.height, navigationController.view.frame.size.width, navigationController.view.frame.size.height);
navigationController.view.frame = frameRect;
Теперь, поскольку мне не очень нравится этот хак, и я бы понял, что происходит, сделайтеУ вас есть предложения, чтобы найти элегантное решение для решения проблемы?
Заранее спасибо.