2011-01-21 18 views
6

Básicamente estos son dos preguntas:Cómo quitar del iPad Popover flecha y su frontera marco

  1. cómo quitar la flecha de vista popover de IPAD?

  2. ¿Hay alguna forma de eliminar el borde negro de popover?

Si no es posible, puede sugerir una forma de iPad para mostrar una UIView (popover) en la parte superior de la pantalla sin flecha y la frontera (frontera podría ser transparente a la luz), por favor? muchas gracias.

Y no creo que ModalView sea una opción adecuada, ya que no se puede cambiar de tamaño y no se puede descartar haciendo clic fuera de la vista modal.

+0

Gracias a todos. Parece que no hay una manera directa de eliminarlos, tiene que personalizar popover. Lo que estoy pensando es implementar una UIView transparente a pantalla completa y agregar otra Vista de menor tamaño en la parte superior. para que cuando se muestre, se comporte como un popover. – Aragon

Respuesta

2

No se puede quitar el cromo alrededor del popover. Su mejor opción es volver a implementar la idea de un popover, pero usando un código personalizado.

7

AFIK no hay una forma incorporada de especificar "sin flecha", o de tener una ventana emergente sin bordes.

Esto es un truco, pero básicamente funciona. En el contexto de su controlador de vista que está gestionado por el controlador de ventanas emergentes, durante viewWillAppear :, obtener la ventana emergente y retirar la primera capa, que es lo que hace que la flecha y la frontera:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear: animated]; 

    UIView* v = self.view.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIView 

    v = v.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIPopoverView 

    [[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer]; 
}  

supongo que se podría experimentar con la adición de su propia capa que representa el fondo/borde de la manera que quería.

+1

Gran truco, gracias. Un par de notas: necesitas '# importar '. Además, recuerde descartar el controlador de popover antes de cualquier rotación, de lo contrario obtendrá un EXC_BAD_ACCESS. – martip

+0

Quitar la capa es una muy mala idea y es probable que Apple te rechace al enviar a appStore. Mire esta solución aquí: https://github.com/werner77/WEPopover – oberthelot

7

Cómo quitar la flecha de la vista de popover de iPad?

Al llamar a -presentPopoverFromBarButtonItem: allowedArrowDirections :, pase 0 como el segundo parámetro, en lugar de cualquiera de las constantes. Esto no está documentado, pero Apple permite las aplicaciones en la App Store cuando usa esta configuración.

+0

Eso hace el trabajo.Sin embargo, la ventana emergente se redimensiona y su ancho no se puede cambiar si usa UIImagePicker como vista de contenido. –

1
  • No se puede quitar la flecha o el borde. Si realiza algún tipo de ataque, como sugiere TomSwift, corre el riesgo de bloqueos y rechazo de apple al enviar su aplicación para appStore.

  • Sin embargo, puede implementar su propio controlador Popover personalizado como lo sugirió Kevin. Puede encontrar un proyecto de código abierto haciendo exactamente eso aquí: https://github.com/werner77/WEPopover. El backgound y la flecha se pueden eliminar de ese o establecer como transparente.

Cuestiones relacionadas