reloj quitar poner personalizar pantalla nombre mensaje inicio como bloqueo iphone ios objective-c ipad ios7

iphone - quitar - La barra de navegación aparece sobre las vistas con el nuevo iOS7 SDK



personalizar pantalla de bloqueo iphone (9)

CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame]; UISearchBar *mySearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)]; mySearchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ; UITableView *myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)]; myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; [self.view addSubview:mySearchBar]; [self.view addSubview:myTableView];

En las versiones anteriores, funciona correctamente. La barra de búsqueda aparece debajo de la statusbar y la statusbar navegación. La vista de tableview aparece debajo de la barra de búsqueda

Pero cuando ejecuto esto en Xcode 5 sdk iOS 7 , la barra de búsqueda no está visible (creo que está ubicada debajo de la barra de estado y la barra de navegación), y también aparece la barra de navegación sobre la vista de tabla.

¿Se solucionará con la versión estable iOS 7 ?

¿O es el problema de mi codificación?

¿O deberíamos manejarlo agregando el valor de y (y = statubar height + nav bar height) para iOS 7 ?

Hace poco descargué Xcode 5 DP para probar mis aplicaciones en iOS 7. Lo primero que noté y confirmé es que los límites de mi vista no siempre se ajustan a la cuenta para la barra de estado y la barra de navegación.

En viewDidLayoutSubviews, imprimo los límites de la vista:

{{0, 0}, {320, 568}}

Esto hace que mi contenido aparezca debajo de la barra de navegación y la barra de estado.

Sé que podría explicar la altura yo mismo obteniendo la altura de la pantalla principal, restando la altura de la barra de estado y la altura de la barra de navegación, pero eso parece un trabajo extra innecesario.

¿Alguien más ha tenido este problema?

ACTUALIZAR:

Encontré una solución para este problema específico. Establezca la propiedad translúcida de la barra de navegación en NO:

self.navigationController.navigationBar.translucent = NO;

Esto arreglará la vista al enmarcarse debajo de la barra de navegación y la barra de estado.

Sin embargo, no encontré una solución para el caso cuando desea que la barra de navegación sea translúcida. Por ejemplo, al ver una foto en pantalla completa, deseo que la barra de navegación sea translúcida y que la vista se enmarque debajo de ella. Eso funciona, pero cuando alterno mostrando u ocultando la barra de navegación, he experimentado resultados aún más extraños. La primera subvista (un UIScrollView ) obtiene sus límites y su origen cambia cada vez.


self.edgesForExtendedLayout = UIRectEdgeNone;

Y debe hacer esto en la aplicación AppDelegate #: didFinishLaunchingWithOptions:

self.window.backgroundColor = [UIColor whiteColor];

De lo contrario, el color de fondo de la barra de navegación cambiará a gris. Porque la barra de navegación transparente se superpone a la ventana.


Como dice el OP, hay una solución simple para esto que consiste en establecer que la barra de navegación sea opaca. En lugar de hacer esto en el código, simplemente desmarque "Translúcido" para su barra de navegación raíz:


Eso no es del todo cierto. Se ha presentado una nueva propiedad en iOS 7 que le permite ajustar el comportamiento de diseño como en versiones anteriores de iOS. Coloque este fragmento de código en su controlador de vista, ¡y debería estar listo para continuar! El espacio que ocupa su barra de navegación debe contabilizarse automáticamente

if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone;

Necesita agregar lo anterior en su método -(void)viewDidLoad .

Nota: Debería utilizar la última versión de GM de iOS 7 y Xcode 5 ahora que la API ha cambiado de las versiones beta.


La respuesta de @One Man Crew es correcta, pero:

Recomendaría utilizar este código para evitar errores al ejecutar la aplicación en versiones anteriores:

#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone; #endif


Si desea mantener la transparencia cuando el usuario desplaza su vista de tabla, puede configurar el contentInset de la misma:

CGFloat topLayoutGuide = self.topLayoutGuide.length + self.tabBarController.navigationController.navigationBar.frame.size.height; self.tableView.contentInset = UIEdgeInsetsMake(topLayoutGuide, 0, 0, 0);


Una solución es usar el Controlador de navegación. Esto soluciona automáticamente el problema. También use Xcode 5 en lugar de versiones de Xcode Preview ya que son beta.


todas estas respuestas fueron útiles, especialmente MQoder, pero para mí también tuve que establecer la barra superior predeterminada en "navegación negra opaca".


self.edgesForExtendedLayout=UIRectEdgeNone;

Funciona en el simulador de iOS 7 (Xcode 5 DP5)


Si está trabajando en Storyboard (¡lo recomiendo encarecidamente!) Esta es la solución: puede desactivar "Extender bordes" de su ViewController en el guión gráfico. Tienes que hacer esto para cada viewController. Puede desactivar bordes extendidos haciendo clic en el icono viewController en Stortyboard (además del propietario del producto debajo de la vista) y luego seleccionando el inspector de atributos (como muestra la imagen).

Esto también establecerá las líneas de alineación como iOS 6.

Otra gran herramienta en xCode 5 es "Vista previa": haga clic en el botón mayordomo (editor asistente) y seleccione Vista previa. allí puede seleccionar iOS 6 y ver cómo se verá el diseño de su storyboard en iOS 6.

Es simplemente genial: D

[Actualizar]

Tenga cuidado: la desactivación de "Extender bordes" puede dar como resultado un brillo negro en la barra de navegación cuando la aplicación ingresa en segundo plano en iOS7. el brillo también será visible en la vista multitarea (presione dos veces en el botón de inicio). esto se puede resolver estableciendo el color de fondo de la vista de la barra de navegación en blanco.

[self.navigationController.view setBackgroundColor:[UIColor whiteColor]];