Pergunta

Ao escrever o manipulador touchesBegan para meu ponto de vista eu corri para este erro interessante.

Código:

...
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
...

O problema é point.x é sempre zero, não importa onde eu "toque" e y é um número enorme que flunctuates algum lugar entre 1070000000 e 1090000000.

As alças está em uma classe vista e ele funciona da mesma é que eu passar nil em vez de si a locationInView. Eu também tentei um loop sobre todos os toques, e há apenas aquele com x como zero sempre.

Então, o que estou fazendo de errado aqui?

Foi útil?

Solução

Qualquer chance que você está usando NSLog (@ "% d,% d", point.x, point.y); para imprimir os valores de ponto? Soa como uma espécie de float -> erro de conversão de int. Eu usei locationInView: muito, e eu nunca tive um problema como este.

Você também pode tentar verificar [auto moldura] para ter certeza que é diferente de zero.

Outras dicas

Ben é certo. O problema é quando você tentar imprimir o valor usando %d em NSLog, porque point.x e point.y são valores float.

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