2012-03-24 10 views
1

Ich könnte wirklich mit etwas Hilfe hier tun. Ich habe die letzten paar Stunden damit verbracht, herauszufinden, wie man den Wert eines CGPoints mit der Center-Eigenschaft eines Bildes vergleicht. Ich hatte angenommen, dass die beiden Werte in Form von x- und y-Koordinaten vorliegen. Unten ist der Code, den ich geschrieben habe.Vergleichen von CGPoint und Bild-Center-Eigenschaft

-(void) jigsawCompleted:(CGPoint) newcenter { 

if(image1.center == newcenter && 
    image2.center == newcenter && 
    image3.center == newcenter && 
    image4.center == newcenter) { 
    NSLog(@"success"); 

} 
} 
....... 
....... 
//if current touch is inside the rectangle 
if (CGRectContainsPoint(snapToRect, location)) { 
    touch.view.alpha = 1.0; 
    //make a point with the coords below 
    CGPoint newcenter = CGPointMake(78, 382); 
    //assign the center coords of the current touch to this newly created point 
    touch.view.center = newcenter; 
    [self jigsawCompleted:newcenter]; 
    return; 
} else { 
    touch.view.alpha = 0.3; 
} 

Wenn die beiden Werte in dem Verfahren jigsawCompleted Vergleich erhalte ich die Fehlermeldung: Ungültige Operanden binären Ausdruck ('CGPoint' (auch bekannt als 'struct CGPoint') und 'CGPoint').

Irgendwelche Hilfe bitte?

Antwort

2

Verwenden der Funktion CGPointEqualToPoint:

if (CGPointEqualToPoint(image1.center, newCenter) && 
    CGPointEqualToPoint(image2.center, newCenter) && 
    CGPointEqualToPoint(image3.center, newCenter) && 
    CGPointEqualToPoint(image4.center, newCenter)) { 
// ... 
3

Der Punkt ist eine Struktur, die x und y enthält. Verwenden Sie CGPointEqualToPoint. Um zu vergleichen, ob ein Punkt gleich einem Bildzentrum ist:

if (CGPointEqualToPoint(image1.center, newcenter) { ... 
Verwandte Themen