Este es el comportamiento predeterminado para UIViewControlleriOS 7. La vista será de pantalla completa, lo que significa que la barra de estado cubrirá la parte superior de la vista.
Si tiene un UIViewControllerdentro de a UINavigationControllery la barra de navegación es visible, puede tener el siguiente código en su viewDidLoado tener una imagen de fondo para que la barra de navegación haga el truco.
self.edgesForExtendedLayout = UIRectEdgeNone;
Si tiene la barra de navegación oculta, entonces debe ajustar todos los elementos de UIView cambiando 20 puntos. No veo ninguna otra solución. Usar diseño automático ayudará un poco.
Aquí está el código de muestra para detectar la versión de iOS, si desea compatibilidad con versiones 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;
}