uiview coordinates superview

UIView touch coordenadas de ubicación



coordinates superview (1)

Tu condición es incorrecta. El corredor según este es un cuadrado, con su centro en (0, 0) en lugar de shuttle.center . Tratar

CGFloat dx = touch.x - centre.x; CGFloat dy = touch.y - centre.y; CGFloat r2 = dx*dx + dy*dy; if (r2 < outerRadius*outerRadius) { NSLog(@"in outer"); if (r2 > innerRadius*innerRadius) NSLog(@"in corridor") }

en lugar.

Incluso si se espera que el pasillo sea un cuadrado, debe verificar con fabs(dx), fabs(dy) no touch.x, touch.y .

¿Cuáles son las coordenadas utilizadas en UIViews y sus supervistas correspondientes? Tengo este código que me gustaría detectar un ''corredor'' donde el usuario puede tocar ... similar a esta imagen: texto alternativo http://img17.imageshack.us/img17/4416/bildschirmfoto20100721u.png

Este es el código que tengo:

CGPoint touch = [recognizer locationInView:[shuttle superview]]; CGPoint centre = shuttle.center; int outerRadius = shuttle.bounds.size.width/2; int innerRadius = (shuttle.bounds.size.width/2) - 30; if ((touch.x < outerRadius && touch.y <outerRadius)){ NSLog(@"in outer"); if(touch.x > innerRadius && touch.y > innerRadius) { NSLog(@"in corridor"); } }

Los radios son aproximadamente 500 y 600, y el touch x y y son 100 y 200 ...

Por lo tanto, nunca se llama al NSLog "en corredor".

Gracias