2010-08-30 3 views
0

J'ai besoin de savoir si un point est à l'intérieur d'une des vues dans un ensemble donné de vues. Pour cela, j'ai utilisé la méthode pointInView de UIView, mais elle renvoie toujours NON. Comme un acte de désespoir, j'ai vérifié si le point central de la vue est à l'intérieur de la vue et il a également renvoyé NON. C'est le code que j'ai utilisé pour cela:pointInView renvoie toujours NON

BOOL wasPointFound = NO; 
NSArray *views = [view subviews]; 
for (UIView *curView in views) 
{ 
    if ([curView pointInside:curView.center withEvent:nil]) 
    { 
     wasPointFound = YES; 
     break; 
    } 
} 

if (!wasPointFound) 
    NSLog(@"NO"); 
else 
    NSLog(@"YES"); 

Quelqu'un peut-il me dire ce que je fais mal?

Merci,

Répondre

1

PointInView est utilisé pour vérifier si l'événement tactile est à l'intérieur d'un point de vue, cela signifie qu'il est lié à la fenêtre et non à la vue. Prendre curView.center est relatif à la vue, donc il y a de bonnes chances que son utilisation retourne false. Essayez d'utiliser CGPointMake (curView.frame.origin.x + curView.center.x, curView.frame.origin.y + curView.center.y) Cela devrait retourner YES

+0

Vous avez raison! Autre que le fait qu'il devrait être: CGPointMake (views.frame.origin.x + curView.center.x, views.frame.origin.y + curView.center.y). Merci! –

Questions connexes