significado puedo para iconos descargar como aplicaciones statusbar ios7

statusbar - para - no puedo descargar aplicaciones en mi iphone 4



¿La barra de estado de iOS 7 vuelve al estilo predeterminado de iOS 6 en la aplicación de iPhone? (25)

En iOS 7, UIStatusBar ha sido diseñado de manera que se fusiona con la vista de esta manera:

(GUI diseñada por Tina Tavčar )

  • Es genial, pero puede alterar un poco tu vista cuando tienes algo en la parte superior de la vista y se superpone con la barra de estado.

  • ¿Existe una solución simple (como establecer una propiedad en info.plist) que pueda cambiar la forma en que funciona [sin superponerse] a cómo está en iOS6?

  • Sé que una solución más sencilla es tener self.view.center.x + 20 puntos por cada controlador de vista individual, pero cambiarlos atornillará otras dimensiones (tener un self.view.center.x diferente puede causar problemas en los segmentos personalizados). , etc.) y de repente se convierte en un trabajo tedioso que es mejor evitar.

  • Realmente me alegraré si alguien me puede proporcionar una solución de una sola línea para esto.

PD: Sé que puedo ocultar la barra de estado haciendo cosas como tener

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

En el método didFinishLaunchingWithOptions , pero esa es una solución, un atajo para evitar el problema, por lo que no considero que sea una solución real.


Actualizaciones el 19 de septiembre de 2013:

corrigió errores de escala agregando self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height);

NSNotificationCenter tipográficos corregidos en la declaración NSNotificationCenter


Actualizaciones el 12 de septiembre de 2013:

UIViewControllerBasedStatusBarAppearance corregido a NO

Añadida una solución para aplicaciones con rotación de pantalla.

Se agregó un enfoque para cambiar el color de fondo de la barra de estado.


Aparentemente, no hay forma de revertir la barra de estado de iOS7 a cómo funciona en iOS6.

Sin embargo, siempre podemos escribir algunos códigos y convertir la barra de estado en similar a iOS6, y esta es la forma más corta que puedo encontrar:

  1. Establezca UIViewControllerBasedStatusBarAppearance en NO en info.plist (Para optar por no info.plist que los controladores de vista ajusten el estilo de la barra de estado para que podamos configurar el estilo de la barra de estado mediante el método UIApplicationstatusBarStyle).

  2. En la application:didFinishLaunchingWithOptions de AppDelegate application:didFinishLaunchingWithOptions , call

    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { [application setStatusBarStyle:UIStatusBarStyleLightContent]; self.window.clipsToBounds =YES; self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); //Added on 19th Sep 2013 self.window.bounds = CGRectMake(0, 20, self.window.frame.size.width, self.window.frame.size.height); } return YES;


a fin de que:

  1. Compruebe si es iOS 7.

  2. Establece que el contenido de la barra de estado sea blanco, a diferencia de UIStatusBarStyleDefault.

  3. Evite que se muestren subvistas cuyos marcos se extiendan más allá de los límites visibles (para las vistas que se animan en la vista principal desde arriba)

  4. Cree la ilusión de que la barra de estado ocupa espacio como en iOS 6 cambiando y cambiando el tamaño del marco de la ventana de la aplicación.


Para aplicaciones con rotación de pantalla,

use NSNotificationCenter para detectar cambios de orientación agregando

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidChangeStatusBarOrientation:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil];

en if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) y cree un nuevo método en AppDelegate:

- (void)applicationDidChangeStatusBarOrientation:(NSNotification *)notification { int a = [[notification.userInfo objectForKey: UIApplicationStatusBarOrientationUserInfoKey] intValue]; int w = [[UIScreen mainScreen] bounds].size.width; int h = [[UIScreen mainScreen] bounds].size.height; switch(a){ case 4: self.window.frame = CGRectMake(0,20,w,h); break; case 3: self.window.frame = CGRectMake(-20,0,w-20,h+20); break; case 2: self.window.frame = CGRectMake(0,-20,w,h); break; case 1: self.window.frame = CGRectMake(20,0,w-20,h+20); } }

De modo que cuando cambie la orientación, activará una instrucción de cambio para detectar la orientación de la pantalla de la aplicación (Vertical, Al revés, Horizontal a la izquierda u Horizontal a la derecha) y cambiará el marco de la ventana de la aplicación respectivamente para crear la ilusión de la barra de estado de iOS 6.


Para cambiar el color de fondo de tu barra de estado:

Añadir

@property (retain, nonatomic) UIWindow *background;

en AppDelegate.h para hacer de background una propiedad en su clase y evitar que ARC la desasigne. (No tiene que hacerlo si no está usando ARC).

Después de eso, solo necesita crear la ventana UI en if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) :

background = [[UIWindow alloc] initWithFrame: CGRectMake(0, 0, self.window.frame.size.width, 20)]; background.backgroundColor =[UIColor redColor]; [background setHidden:NO];

No te olvides de @synthesize background; después de @implementation AppDelegate !


ACTUALIZACIÓN (NUEVA SOLUCIÓN)

Esta actualización es la mejor solución para el problema de la barra de navegación de iOS 7. Puede configurar el color de la barra de navegación: FakeNavBar.backgroundColor = [UIColor redColor];

Nota: Si usa el controlador de navegación predeterminado, use la solución antigua.

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { if(NSFoundationVersionNumber >= NSFoundationVersionNumber_iOS_7_0) { UIView *FakeNavBar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 20)]; FakeNavBar.backgroundColor = [UIColor whiteColor]; float navBarHeight = 20.0; for (UIView *subView in self.window.subviews) { if ([subView isKindOfClass:[UIScrollView class]]) { subView.frame = CGRectMake(subView.frame.origin.x, subView.frame.origin.y + navBarHeight, subView.frame.size.width, subView.frame.size.height - navBarHeight); } else { subView.frame = CGRectMake(subView.frame.origin.x, subView.frame.origin.y + navBarHeight, subView.frame.size.width, subView.frame.size.height); } } [self.window addSubview:FakeNavBar]; } return YES; }

SOLUCIÓN ANTIGUA: si utiliza un código anterior, ignore el siguiente Código e Imagen

Esta es una versión antigua de la solución de barra de navegación iOS 7.

Resolví el problema con el siguiente código. Esto es para agregar una barra de estado. didFinishLaunchingWithOptions

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { UIView *addStatusBar = [[UIView alloc] init]; addStatusBar.frame = CGRectMake(0, 0, 320, 20); addStatusBar.backgroundColor = [UIColor colorWithRed:0.973 green:0.973 blue:0.973 alpha:1]; //change this to match your navigation bar [self.window.rootViewController.view addSubview:addStatusBar]; }

Y para Interface Builder esto es para cuando abres con iOS 6; Se está iniciando en 0 píxeles.

Nota: iOS 6/7 Deltas solo aparecen si desactiva "Usar Autolayout" para el Controlador de vista en el "Inspector de archivos" (icono de la izquierda) en el panel de detalles.


Aquí otro enfoque para proyectos que hacen uso extensivo del Storyboard:

GOL:

El objetivo de este enfoque es recrear el mismo estilo de barra de estado en iOS7 que había en iOS6 (consulte el título de la pregunta "¿Barra de estado de iOS 7 ¿Volver al estilo de iOS 6?").

RESUMEN:

Para lograr esto, utilizamos el guión gráfico tanto como sea posible desplazando los elementos de la interfaz de usuario que se superponen con la barra de estado (en iOS 7) hacia abajo, mientras que usamos deltas para revertir el cambio de diseño hacia abajo para iOS 6.1 o anterior. El espacio adicional resultante en iOS 7 es luego ocupado por un UIView con el backgroundColor establecido en un color de nuestra elección. Este último se puede crear en código o utilizando el Guión gráfico (vea ALTERNATIVAS a continuación)

Suposiciones:

Para obtener el resultado deseado al seguir los pasos a continuación, se supone que la View controller-based status bar appearance está configurada en NO y que el Status bar style está configurado en "estilo negro transparente (alfa de 0.5)" o "negro opaco estilo". Ambas configuraciones se pueden encontrar o agregar en "Información" en la configuración de su proyecto.

PASOS:

  • Agregue una subvista a la ventana UI para que sirva como fondo de la barra de estado. Para lograr esto, agregue lo siguiente a la application: didFinishLaunchingWithOptions: su AppDelegate application: didFinishLaunchingWithOptions: after makeKeyAndVisible

    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { UIView *statusBarBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, yourAppsUIWindow.frame.size.width, 20)]; statusBarBackgroundView.backgroundColor = [UIColor blackColor]; [yourAppsUIWindow addSubview:statusBarBackgroundView]; }

  • Debido a que agregaste un fondo para iOS 7 programáticamente, tendrás que ajustar el diseño de los elementos de tu interfaz de usuario que se superponen en la barra de estado, al mismo tiempo que conserva su diseño para iOS6. Para lograr esto, haga lo siguiente:

    • Asegúrese de que Use Autolayout no esté marcado para su Guión gráfico (esto se debe a que, de lo contrario, "iOS 6/7 Deltas" no se muestra en el Inspector de tamaño). Para hacer esto:
      • seleccione su archivo Storyboard
      • Mostrar Utilidades
      • seleccione "Mostrar el inspector de archivos"
      • En "Documento de Interface Builder" desmarca "Usar Autolayout"
    • Opcionalmente, para ayudarlo a monitorear los cambios de diseño para iOS 7 Y 6 a medida que los aplique, seleccione el "Editor Asistente", seleccione "Vista previa" y "iOS 6.1 o anterior":
    • Ahora seleccione el elemento UI que desea ajustar para que no se superponga más con la barra de estado
    • Seleccione "Mostrar el inspector de tamaño" en la columna Utilidades
    • Reposicione su elemento UI a lo largo del eje Y en la misma cantidad que la altura de bg de la barra de estado:
    • Y cambie el valor de Deltas de iOS6 / 7 para Y por la misma cantidad NEGATIVA que la altura de bg de la barra de estado (tenga en cuenta el cambio en la vista previa de iOS 6 si lo está utilizando):

ALTERNATIVAS:

Para agregar aún menos código en proyectos pesados ​​en el guión gráfico y para que el fondo de la barra de estado funcione automáticamente, en lugar de agregar mediante programación un fondo para la barra de estado, puede agregar una vista de color a cada controlador de vista que se encuentra en la parte superior de la vista principal de dicho controlador de vista. Luego, cambiará el delta de altura de esta nueva vista a la misma cantidad negativa que la altura de su vista (para que desaparezca en iOS 6).

La desventaja de esta alternativa (aunque tal vez sea insignificante teniendo en cuenta la compatibilidad con autorrotación) es el hecho de que esta vista adicional no se ve de inmediato si está viendo su Guión gráfico para iOS 6. Solo sabría que está ahí si observa el " Esquema del documento "del storyboard.


Esto se publicó de forma cruzada en una publicación de blog que escribí , pero aquí está el resumen completo de las barras de estado, las barras de navegación y los controladores de vista de contenedor en iOS 7:

  1. No hay forma de preservar el diseño de la barra de estado del estilo de iOS 6. La barra de estado siempre se superpondrá a su aplicación en iOS 7

  2. No confunda el aspecto de la barra de estado con el diseño de la barra de estado. La apariencia (clara o predeterminada) no afecta la forma en que se distribuye la barra de estado (marco / altura / superposición). También es importante tener en cuenta que la barra de estado del sistema ya no tiene ningún color de fondo. Cuando la API se refiere a UIStatusBarStyleLightContent, significan texto blanco sobre un fondo claro. UIStatusBarStyleDefault es texto negro sobre un fondo claro.

  3. La apariencia de la barra de estado se controla a través de una de las dos rutas de base mutuamente exclusivas: puede configurarlas de manera tradicional o UIKit actualizará la apariencia según las nuevas propiedades de UIViewController. La última opción está activada por defecto. Verifique el valor de plist de su aplicación para ver la apariencia de la barra de estado basada en ViewController para ver cuál está usando. Si establece este valor en SÍ, cada controlador de vista de nivel superior en su aplicación (que no sea un controlador de vista de contenedor UIKit estándar) debe anular preferredStatusBarStyle, devolviendo el estilo predeterminado o el estilo de luz. Si edita el valor de plist a NO, puede administrar la apariencia de la barra de estado utilizando los métodos de aplicación UIA conocidos.

  4. UINavigationController modificará la altura de su barra UINavigation a 44 puntos o 64 puntos, dependiendo de un conjunto de restricciones bastante extraño e indocumentado. Si UINavigationController detecta que la parte superior del marco de su vista es contigua visualmente con la parte superior de su UIWindow, entonces dibuja su barra de navegación con una altura de 64 puntos. Si la parte superior de su vista no es contigua con la parte superior de la ventana UI (incluso si está desactivada en un solo punto), dibuja su barra de navegación en la forma "tradicional" con una altura de 44 puntos. Esta lógica es realizada por UINavigationController incluso si hay varios hijos dentro de la jerarquía del controlador de vista de su aplicación. No hay forma de prevenir este comportamiento.

  5. Si proporciona una imagen de fondo de la barra de navegación personalizada que solo tiene 44 puntos (88 píxeles) de altura, y los límites de la vista de UINavigationController coinciden con los límites de UIWindow (como se explica en el # 4), el UINavigationController dibujará su imagen en el marco (0,20,320 , 44), dejando 20 puntos de espacio negro opaco sobre su imagen personalizada. Esto puede confundirte y hacerte creer que eres un desarrollador inteligente que pasó por alto la regla # 1, pero estás equivocado. La barra de navegación sigue siendo de 64 puntos de altura. Incrustar un controlador de UINavigation en una jerarquía de vista de estilo de diapositiva a revelación lo hace bastante claro.

  6. Tenga cuidado con la propiedad edgesForExtendedLayout de UIViewController. El ajuste de edgesForExtendedLayout no hace nada en la mayoría de los casos. La única forma en que UIKit usa esta propiedad es si agrega un controlador de vista a un UINavigationController, entonces el UINavigationController usa edgesForExtendedLayout para determinar si su controlador de vista secundario debe ser visible debajo de la barra de navegación / área de la barra de estado. La configuración de edgesForExtendedLayout en el UINavigationController no hace nada para alterar si el UINavigationController tiene un área de barra de navegación de 44 o 64 puntos. Ver # 4 para esa lógica. La lógica de diseño similar se aplica a la parte inferior de su vista cuando usa una barra de herramientas o un UITabBarController.

  7. Si todo lo que intenta hacer es evitar que su controlador de vista secundario personalizado se subponga a la barra de navegación cuando se encuentre dentro de un UINavigationController, entonces configure edgesForExtendedLayout a UIRectEdgeNone (o al menos una máscara que excluye UIRectEdgeTop). Establezca este valor tan pronto como sea posible en el ciclo de vida de su controlador de vista.

  8. UINavigationController y UITabBarController también intentarán rellenar los Contenidos de contenido de las vistas de tabla y las vistas de colección en su jerarquía de subvistas. Lo hace de una manera similar a la lógica de la barra de estado del # 4. Hay una forma programática de evitar esto, al configurar automáticamente AjustaScrollViewInsets a NO para sus vistas de tabla y vistas de colección (su valor predeterminado es YES). Esto planteó algunos problemas serios para Whisper y Riposte, ya que usamos los ajustes de contentInset para controlar el diseño de las vistas de tabla en respuesta a los movimientos de la barra de herramientas y el teclado.

  9. Para reiterar: no hay manera de volver a la lógica de diseño de la barra de estado del estilo de iOS 6. Para aproximarse a esto, debe mover todos los controladores de vista de su aplicación a una vista de contenedor que está compensada por 20 puntos desde la parte superior de la pantalla, dejando una vista intencionalmente en negro detrás de la barra de estado para simular la apariencia anterior. Este es el método que terminamos usando en Riposte y Whisper.

  10. Apple está presionando mucho para asegurarte de que no trates de hacer el # 9. Quieren que rediseñemos todas nuestras aplicaciones para que se superpongan a la barra de estado. Sin embargo, hay muchos argumentos convincentes, tanto por la experiencia del usuario como por razones técnicas, por lo que no siempre es una buena idea. Debe hacer lo que sea mejor para sus usuarios y no simplemente seguir el capricho de la plataforma.



He logrado barra de estado como iOS 6 en iOS 7.

Establezca UIViewControllerBasedStatusBarAppearance en NO en info.plist

Pase este código en - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions método - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { [application setStatusBarStyle:UIStatusBarStyleLightContent]; self.window.clipsToBounds =YES; self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height); //Added on 19th Sep 2013 NSLog(@"%f",self.window.frame.size.height); self.window.bounds = CGRectMake(0,0, self.window.frame.size.width, self.window.frame.size.height); }

Puede reducir todas sus vistas en 20 píxeles. Para lograr esto, utilice el siguiente código en -(void)viewDidAppear:(BOOL)animated método -(void)viewDidAppear:(BOOL)animated

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { CGRect frame=self.view.frame; if (frame.size.height==[[NSUserDefaults standardUserDefaults] floatForKey:@"windowHeight"]) { frame.size.height-=20; } self.view.frame=frame; }

Debe establecer el valor de los valores predeterminados de ventana de usuario después de la asignación de la ventana en el método didFinishLauncing como

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [[NSUserDefaults standardUserDefaults] setFloat:self.window.frame.size.height forKey:@"windowHeight"];


He visto muchos, muchos, muchos y muchos tutoriales para solucionar este problema. ¡Pero ninguno de ellos funciona! Aquí está mi solución, y funciona para mí:

if( [[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0f ) { float statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height; for( UIView *v in [self.view subviews] ) { CGRect rect = v.frame; rect.origin.y += statusBarHeight; v.frame = rect; } }

La lógica es simple. Cambio todas las vistas de los niños en la vista propia con 20 píxeles. Eso es todo. Luego, la captura de pantalla se mostrará como lo hizo iOS 6. ¡Odio la barra de estado de iOS7! ~ "~


SOLUCION:

Establézcalo en su controlador de vista o en el controlador de vista de raíz anulando el método:

-(BOOL) prefersStatusBarHidden { return YES; }


Si está utilizando el generador de interfaz, intente esto:

En tu archivo xib:

1) Seleccione la vista principal, establezca el color de fondo en negro (o el color que desee que sea la barra de estado).

2) Asegúrese de que el fondo sea una subvista independiente que se encuentre como un elemento secundario de nivel superior de la vista del controlador.
Mueva su fondo para convertirse en un hijo directo de la vista del controlador. Verifique el panel de ajuste automático para asegurarse de que ha bloqueado todos los bordes del cuadro, activado ambos ejes de flexibilidad y, si se trata de un UIImageView, configure el modo de contenido en Escala para completar. Programáticamente, esto se traduce en contentMode establecido en UIViewContentModeScaleToFill y tiene su máscara de redimensionamiento automático establecida en (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight).

3) Ahora mueva todo lo que está bloqueado de arriba a abajo por 20 pts y configure un delta Y 6/7 de iOS en -20.
Todos los elementos secundarios de nivel superior que están bloqueados en el marco superior en el panel de autoajuste deben reducirse 20 pts y su iOS 6/7 delta Y se establece en -20. (Cmd, seleccione todos esos, y haga clic hacia abajo la flecha 20 veces, ¿hay alguna manera mejor de hacerlo?)

4) Ajuste la altura delta iOS 6/7 de todos los elementos anteriores que tenían una altura flexible. Cualquiera de los elementos que estaban bloqueados en la parte superior e inferior del marco y que tenían la altura flexible habilitada en el panel de tamaño automático también deben tener su altura delta iOS 6/7 configurada en 20. Eso incluye la vista de fondo mencionada anteriormente. Esto puede parecer antiintuitivo, pero debido al orden en que se aplican, es necesario. La altura del cuadro se establece primero (según el dispositivo), luego se aplican los deltas y, finalmente, se aplican las máscaras de tamaño automático en función de las posiciones de desplazamiento de todos los cuadros secundarios: piénselo bien, tendrá sentido.

5) Finalmente, los elementos que estaban bloqueados en el marco inferior pero no en el marco superior no necesitan deltas en absoluto.

Eso te dará la barra de estado idéntica en iOS7 y iOS6.

Por otro lado, si desea un estilo iOS7 manteniendo la compatibilidad con iOS6, configure los valores de delta Y / delta height en 0 para la vista de fondo.

Para ver más información sobre la migración de iOS7, lea la publicación completa: http://uncompiled.blogspot.com/2013/09/legacy-compatible-offsets-in-ios7.html


Si no desea que sus controles de vista se superpongan con la barra de estado (y las barras de navegación), desmarque la casilla "Extender bordes debajo de las barras superiores" en Interface Builder en Xcode 5.


Una pequeña alternativa a la respuesta de Archy Holt, un poco más simple:

a. Establezca UIViewControllerBasedStatusBarAppearance en NO en info.plist

segundo. En la application:didFinishLaunchingWithOptions: AppDelegate application:didFinishLaunchingWithOptions: call:

if ([[UIDevice currentDevice].systemVersion floatValue] < 7) { self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; } else { // handling statusBar (iOS7) application.statusBarStyle = UIStatusBarStyleLightContent; self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; self.window.clipsToBounds = YES; // handling screen rotations for statusBar (iOS7) [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidChangeStatusBarOrientationNotification:) name:UIApplicationDidChangeStatusBarOrientationNotification object:nil]; }

Y añada el método:

- (void)applicationDidChangeStatusBarOrientationNotification:(NSNotification *)notification { // handling statusBar (iOS7) self.window.frame = [UIScreen mainScreen].applicationFrame; }

También puede considerar UIWindow subclases de UIWindow para manejar UIApplicationDidChangeStatusBarOrientationNotification .


Utilicé esto en todos mis controladores de vista, es simple. Agregue estas líneas en todos sus métodos viewDidLoad:

- (void)viewDidLoad{ //add this 2 lines: if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone; [super viewDidLoad]; }



Esto puede ser demasiado tarde para compartir, pero tengo algo que aportar que podría ayudar a alguien, estaba tratando de subclasificar la barra de UINavigation y quería que se viera como ios 6 con la barra de estado negra y el texto de la barra de estado en blanco.

Esto es lo que encontré trabajando para eso.

self.navigationController?.navigationBar.clipsToBounds = true self.navigationController?.navigationBar.translucent = false self.navigationController?.navigationBar.barStyle = .Black self.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()

El fondo de la barra de estado se volvió de color negro, el texto de la barra de estado de color blanco y el color de la barra de navegación de color blanco.

iOS 9.3, XCode 7.3.1


La forma más sencilla de hacerlo es instalar un SDK anterior en su Xcode más reciente.

¿Cómo instalar un SDK anterior al Xcode más nuevo?

  1. Puede obtener el SDK de iOS 6.1 desde http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html o descargar un Xcode anterior y obtener el SDK de su contenido

  2. Descomprima y pegue esta carpeta en /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

  3. Reinicie el xcode.

  4. Ahora puedes seleccionar un SDK anterior en la configuración de compilación de tu proyecto

Espero que te ayude. Funcionó para mí =)


Llego tarde a esta respuesta, pero solo quiero compartir lo que hice, que es básicamente la solución más fácil

Primero que todo-> Ve a tu info.plistarchivo y agrega el estilo de la barra de estado-> Estilo negro transparente (alfa de 0.5)

Ahora, aquí va: -

Agregue este código en su AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //Whatever your code goes here if(kDeviceiPad){ //adding status bar for IOS7 ipad if (IS_IOS7) { UIView *addStatusBar = [[UIView alloc] init]; addStatusBar.frame = CGRectMake(0, 0, 1024, 20); addStatusBar.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; //change this to match your navigation bar [self.window.rootViewController.view addSubview:addStatusBar]; } } else{ //adding status bar for IOS7 iphone if (IS_IOS7) { UIView *addStatusBar = [[UIView alloc] init]; addStatusBar.frame = CGRectMake(0, 0, 320, 20); addStatusBar.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1]; //You can give your own color pattern [self.window.rootViewController.view addSubview:addStatusBar]; } return YES; }


Mi solución muy simple (suponiendo que solo se admite la orientación vertical) es redefinir los límites de la ventana de la aplicación para versiones de iOS inferiores a 7, en el método de delegado de la aplicación didFinishLaunchingWithOptions:

CGRect screenBounds = [[UIScreen mainScreen] bounds]; if ([HMService getIOSVersion] < 7) { // handling statusBar (iOS6) by leaving top 20px for statusbar. screenBounds.origin.y = 20; self.window = [[UIWindow alloc] initWithFrame:screenBounds]; } else { self.window = [[UIWindow alloc] initWithFrame:screenBounds]; }


Para continuar trabajando con setStatusBarHidden: uso esta categoría:

@interface UIApplication (StatusBar) -(void)setIOS7StatusBarHidden:(BOOL)statusBarHidden; @end @implementation UIApplication (StatusBar) -(void)setIOS7StatusBarHidden:(BOOL)statusBarHidden{ if (!IOS7) { [self setStatusBarHidden:statusBarHidden]; return; } if ([self isStatusBarHidden] == statusBarHidden) { return; } [self setStatusBarHidden:statusBarHidden]; [self keyWindow].clipsToBounds = YES; CGFloat offset = statusBarHidden ? 0 : 20; [self keyWindow].frame = CGRectMake(0,offset,[self keyWindow].frame.size.width,[self keyWindow].frame.size.height-offset); [self keyWindow].bounds = CGRectMake(0, offset, [self keyWindow].frame.size.width,[self keyWindow].frame.size.height); } @end


Pasos para ocultar la barra de estado en iOS 7:

1. Vaya a su archivo info.plist aplicación.

2. Y Establecer, Ver el aspecto de la barra de estado basada en el controlador: Booleano NO

Espero haber resuelto el problema de la barra de estado .....


Prueba este método simple ...

Paso 1 : Cambiar en solo viewController

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackOpaque];

Paso 2 : Cambiar en toda la aplicación.

info.plist ----> Status Bar Style --->UIStatusBarStyle to UIStatusBarStyleBlackOpaque

Paso 3 : también agregue esto en cada vista. viewWillAppear para ajustar la altura de la statusbar para iOS7

[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]; if ([[UIDevice currentDevice].systemVersion floatValue] >= 7) { CGRect frame = [UIScreen mainScreen].bounds; frame.origin.y+=20.0; frame.size.height-= 20.0; self.view.frame = frame; [self.view layoutIfNeeded]; }


Como el uso del presentViewController:animated:completion:error window.rootViewController.view, tuve que encontrar un enfoque diferente para este problema. Finalmente conseguí que funcionara con modales y rotaciones subclasificando la UIView de mi rootViewController.

.h

@interface RootView : UIView @end

.metro

@implementation RootView -(void)setFrame:(CGRect)frame { if (self.superview && self.superview != self.window) { frame = self.superview.bounds; frame.origin.y += 20.f; frame.size.height -= 20.f; } else { frame = [UIScreen mainScreen].applicationFrame; } [super setFrame:frame]; } - (void)layoutSubviews { self.frame = self.frame; [super layoutSubviews]; } @end

Ahora tienes una solución sólida para las animaciones de iOS7.


Esto puede ser un problema abrumador si usa el diseño automático porque ya no puede manipular directamente los marcos. Hay una solución simple sin mucho trabajo.

Terminé escribiendo un método de utilidad en una Clase de utilidad y lo llamé desde el viewDidLayoutSubviewsMétodo de todos los controladores de vista .

+ (void)addStatusBarIfiOS7:(UIViewController *)vc { if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { CGRect viewFrame = vc.view.frame; if(viewFrame.origin.y == 20) { //If the view''s y origin is already 20 then don''t move it down. return; } viewFrame.origin.y+=20.0; viewFrame.size.height-= 20.0; vc.view.frame = viewFrame; [vc.view layoutIfNeeded]; } }

Anule su viewDidLayoutSubviewsmétodo en el controlador de vista, donde desea la barra de estado. Te llevará a través de la carga de Autolayout.

- (void)viewDidLayoutSubviews { [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent]; [super viewDidLayoutSubviews]; [MyUtilityClass addStatusBarIfiOS7:self]; }


Mi solución fue agregar una UIViewaltura de 20 puntos en la parte superior de la ventana cuando estaba en iOS 7. Luego, creé un método en mi clase AppDelegate para mostrar / ocultar el fondo de la barra de estado "sólida". En application:didFinishLaunchingWithOptions::

// ... // Add a status bar background self.statusBarBackground = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.window.bounds.size.width, 20.0f)]; self.statusBarBackground.backgroundColor = [UIColor blackColor]; self.statusBarBackground.alpha = 0.0; self.statusBarBackground.userInteractionEnabled = NO; self.statusBarBackground.layer.zPosition = 999; // Position its layer over all other views [self.window addSubview:self.statusBarBackground]; // ... return YES;

Luego creé un método para atenuar el fondo negro de la barra de estado:

- (void) showSolidStatusBar:(BOOL) solidStatusBar { [UIView animateWithDuration:0.3f animations:^{ if(solidStatusBar) { [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; self.statusBarBackground.alpha = 1.0f; } else { [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; self.statusBarBackground.alpha = 0.0f; } }]; }

Todo lo que tengo que hacer ahora es llamar [appDelegate showSolidStatusBar:YES]cuando sea necesario.


Puede ocultar la barra de estado todos juntos. Así que tu aplicación será de pantalla completa. Creo que eso es lo mejor que obtendrás.

UIStatusBarStyleNone o establecer en la configuración de destino.