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 UIPopoverControllerVista, 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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top