Come aggiungere una vista sulla cima di un'UIPopoverController
-
26-09-2019 - |
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?
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