Este é o comportamento padrão UIViewController
do iOS 7. A visualização será em tela inteira, o que significa que a barra de status cobrirá a parte superior da visualização.
Se você tiver um UIViewController
dentro de a UINavigationController
e a navigationBar estiver visível, você pode ter o seguinte código no seu viewDidLoad
ou ter uma imagem de fundo para a navigationBar fazer o truque.
self.edgesForExtendedLayout = UIRectEdgeNone;
Se você tiver a barra de navegação oculta, terá que ajustar todos os elementos do UIView deslocando 20 pontos. Não vejo outra solução. Usar layout automático ajudará um pouco.
Aqui está o código de amostra para detectar a versão do iOS, se você quiser compatibilidade com versões anteriores.
NSUInteger DeviceSystemMajorVersion() {
static NSUInteger _deviceSystemMajorVersion = -1;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *systemVersion = [UIDevice currentDevice].systemVersion;
_deviceSystemMajorVersion = [[systemVersion componentsSeparatedByString:@"."][0] intValue];
});
return _deviceSystemMajorVersion;
}