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!

Foi útil?

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?

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