Tentando toque determinação de localização sempre retorna zero (0) como x localização
-
06-07-2019 - |
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?
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.