1

我真的可以在这里得到一些帮助。在过去的几个小时里,我试图弄清楚如何比较 CGPoint 的值和图像的 center 属性。我假设这两个值是 x 和 y 坐标的形式。下面是我写的代码。

-(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;
}

当比较 jigsawCompleted 方法中的两个值时,我得到错误:二进制表达式的操作数无效('CGpoint'(又名'struct CGPoint')和'CGPoint')。

请问有什么帮助吗?

4

3 回答 3

6

使用CGPointEqualToPoint().

if (CGPointEqualToPoint(image1.center, newCenter) && ...)
于 2012-03-24T23:32:20.447 回答
3

该点是一个包含 x 和 y 的结构。使用 CGPointEqualToPoint。比较一个点是否等于图像中心:

if (CGPointEqualToPoint(image1.center, newcenter) { ...
于 2012-03-24T23:33:19.677 回答
2

使用功能CGPointEqualToPoint

if (CGPointEqualToPoint(image1.center, newCenter) &&
    CGPointEqualToPoint(image2.center, newCenter) &&
    CGPointEqualToPoint(image3.center, newCenter) &&
    CGPointEqualToPoint(image4.center, newCenter)) {
// ...
于 2012-03-24T23:32:28.507 回答