Como adicionar uma vista em cima de um UipopoverController
-
26-09-2019 - |
Pergunta
Eu tenho um aplicativo para iPad com uma tabela de "gaveta" exibida em um popover. O usuário pode tocar e reter em um item na gaveta para arrastar esse item para fora dele e para a minha visão principal. Essa parte funciona bem; Infelizmente, a visão arrastada aparece sob o popover e é pequena demais para ser visível até que seja arrastada por baixo dela. Se eu adicionar a visualização como uma subjacente do controlador de exibição dentro The Popover, ele é cortado pela moldura da popover e, como não consigo acessar o UIPopoverController
Vista, eu não posso desativar a sua camada masksToBounds
- e isso provavelmente não seria uma ótima idéia de qualquer maneira. Eu suspeito que eu poderia usar um adicional UIWindow
com um alto windowLevel
valor para forçar a vista arrastada a aparecer no topo da popover, mas isso parece um exagero. Existe uma solução melhor?
Solução
Entendi. UIWindow
funciona bem. 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;
Outras dicas
Adicionando o Rápido Versão:
let windows: [UIWindow] = UIApplication.shared.windows
let firstWindow: UIWindow = windows[0]
firstWindow.addSubview(loadingView)
firstWindow.bringSubview(toFront: loadingView)
Editar para Admin: obrigado pela revisão - excluiu minha outra resposta em duplicado Como mostrar uma UIView sobre um UipopoverController