Posso mover uma UIAlertView?
-
22-07-2019 - |
Pergunta
Eu tenho movido uma exibição de alerta ligeiramente maior para que eu possa caber um teclado na tela também. Eu só faço isso por agarrando a armação do alerta e alterar a Y depois que eu já mostraram o alerta para que as variáveis ??de quadro são legítimos. Esta multa funciona no simulador, mas quando eu faço isso no hardware, o alerta começa na posição correta, mas, em seguida, quase imediatamente salta para baixo do lugar central vertical originais. É a posição UIAlertView uma coisa fixa, que não é suposto a mudança de acordo com as diretrizes de usabilidade ou estou apenas fazendo algo errado?
Obrigado!
Solução
O sistema operacional que você está tentando isso contra? Eu tenho isso para trabalho em ambos o OS 3.0 Simulator e OS 3.0 Dispositivo:
UIAlertView * alert = [ [ UIAlertView alloc ] initWithTitle:@"Alert" message:@"Alert"
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil ];
alert.transform = CGAffineTransformTranslate( alert.transform, 0.0, 100.0 );
[ alert show ];
CGAffineTransformTranslate
recebe três argumentos: a transformação existente, um X transformar, e um y transformar. No exemplo que eu usei, a exibição de alerta apareceu 100 pixels maior do que normalmente. Tentar dar um presente e ver o que acontece.
Além disso, estou certo de que você pode alterar o quadro antes de mostrar o alerta como ele define prováveis ??acima do frame do alerta no init
para ser o centro de toda a tela por padrão.
Outras dicas
Desde iOS4 movendo-se UIAlertViews fica complicado. Tenho notado que se você adicionar um subexibição UITextField na UIAlertView, em iOS4 o alerta é movido para cima para que o teclado não se sobreponha-lo. Isso não acontece Também tenho notado que o quadro do alerta não é inicializado, mesmo após show é chamado, portanto, não há nenhuma maneira programática fácil de fazer um CGAffineTransformation relativa. A única solução seria fazer as transformações condicionais com base na versão OS. Para me Isto parece enfiar sobre o comportamento em situação irregular de UIAlertViews que está sujeita a mudanças a qualquer momento. Eu não acho que a Apple significou para nós estar usando os alertas para qualquer coisa mais do que textos e botões (mesmo que suas próprias aplicações quebrar essa regra). Eu, pelo menos vai começar a construir meus próprios alertas personalizados para este tipo de cenários.
Não é um alerta destinado a ser modal - ou seja: você não faria normalmente realizar qualquer outra entrada do usuário quando um alerta está activo? Se este for o caso, então por que você precisa visibilidade do teclado?