Domanda

Ho un app iPad con un tavolo “cassetto” visualizzato in un popover. L'utente può toccare-and-hold su un elemento nel cassetto di trascinamento tale elemento fuori di esso e nella mia vista principale. Quella parte funziona bene; purtroppo, l'essere trascinato vista appare sotto il popover, ed è troppo piccolo per essere visibile finché non viene trascinato fuori da sotto di esso. Se aggiungo la vista come una visualizzazione secondaria del controller della vista in il popover, esso viene ritagliato dal telaio del popover, e come non posso accedere vista del UIPopoverController, non posso disabilitare masksToBounds del suo strato -e che probabilmente non sarebbe una grande idea comunque. Ho il sospetto che avrei potuto usare un UIWindow supplementare con un alto valore windowLevel per forzare la vista trascinato per comparire in cima alla popover, ma questo mi sembra eccessivo. C'è una soluzione migliore?

È stato utile?

Soluzione

ottenuto. UIWindow funziona bene. Codice:

// 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;

Altri suggerimenti

L'aggiunta della Swift Versione:

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

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

Modifica per admin: grazie per la revisione - cancellato la mia altra risposta in duplice copia Come mostrare un UIView nel corso di un UIPopoverController

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top