我可以在这里提供一些帮助。我花了几个小时试图找出如何比较CGPoint的值和图像的中心属性。我假设这两个值是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')。
请帮忙吗?
答案 0 :(得分:6)
if (CGPointEqualToPoint(image1.center, newCenter) && ...)
答案 1 :(得分:3)
该点是包含x和y的结构。使用CGPointEqualToPoint。比较点是否等于图像中心:
if (CGPointEqualToPoint(image1.center, newcenter) { ...
答案 2 :(得分:2)
使用函数CGPointEqualToPoint
:
if (CGPointEqualToPoint(image1.center, newCenter) &&
CGPointEqualToPoint(image2.center, newCenter) &&
CGPointEqualToPoint(image3.center, newCenter) &&
CGPointEqualToPoint(image4.center, newCenter)) {
// ...