Pregunta

Tengo una aplicación para iPad con una mesa de “cajón” que se muestra en un popover. El usuario puede tocar y mantener en un elemento en el cajón de arrastre que fuera elemento de la misma y en mi vista principal. Esa parte funciona bien; Por desgracia, la vista siendo arrastrada aparece bajo el popover, y es demasiado pequeño para ser visible hasta que se arrastró hacia fuera de debajo de ella. Si añado la vista como una vista secundaria del controlador de vista en el popover, que se recorta por el marco de la popover, y ya que no puedo acceder a la vista de la UIPopoverController, no puedo desactivar masksToBounds de su capa -y que probablemente no sería una gran idea de todos modos. Sospecho que podría utilizar un UIWindow adicional con un alto valor de windowLevel para forzar la vista arrastrado a aparecer en la parte superior de la popover, pero esto parece un exceso. ¿Hay una solución mejor?

¿Fue útil?

Solución

Lo tengo. UIWindow funciona bien. Código:

// when drag starts
draggingView = [[UIWindow alloc] initWithFrame:CGRectMake(0,0,100,100)];
draggingView.windowLevel = UIWindowLevelAlert;
draggingView.center = [gestureRecognizer locationInView:self.view.window];
[draggingView makeKeyAndVisible];

// when drag ends
[draggingView release];
draggingView = nil;

Otros consejos

Adición de la Swift Version:

    let windows: [UIWindow] = UIApplication.shared.windows
    let firstWindow: UIWindow = windows[0]

    firstWindow.addSubview(loadingView)
    firstWindow.bringSubview(toFront: loadingView)

EDITAR a admin: gracias por la revisión - eliminado mi otra respuesta por duplicado ¿Cómo mostrar un UIView más de un UIPopoverController

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top