我理解如何制作可拖动的图像,但是我无法从我的主ViewController.m文件中拖放类文件中的图像。我的班级被称为“炸弹”。每两秒钟就会制造一个新炸弹,并带有一个炸弹图像(一个炸弹对象)。炸弹被添加到NSMutableArray(bombArray)。
- (void) newBomb
{
bomb *bomb1 = [[bomb alloc] init];
[bombArray addObject: bomb1];
[bomb1 displayBombOnView:self.view]; //displayBombOnView just makes a new bomb in a random location
}
我正在努力使用户可以拖动每个“炸弹”。
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event : (bomb *) bomb
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
bomb->bombImage.center = location;
}
-(void) touchesMoved:(NSSet*)touches withEvent:(UIEvent *)event
{
bomb *tempBomb = [[bomb alloc] init];
arrayCount = [bombArray count];
for (int k = 0; k<arrayCount; k++)
{
tempBomb = [bombArray objectAtIndex:k];
CGPoint tappedPt = [[touches anyObject] locationInView: self];
int xPos = tappedPt.x;
int yPos = tappedPt.y;
if ((xPos >= tempBomb->bombImage.center.x - 25 && xPos <= tempBomb->bombImage.center.x + 25) && (yPos >= tempBomb->bombImage.center.y - 25 && xPos <= tempBomb->bombImage.center.y + 25))
{
[self touchesBegan:touches withEvent:event : [bombArray objectAtIndex:k]];
break;
}
}
}
它构建,但是当我尝试拖动图像时,它会崩溃,说Thread 1: signal SIGABRT
。任何帮助将不胜感激。
答案 0 :(得分:2)
使用UIPanGestureRecognizer而不是你正在做的事情。在创建每个炸弹图像视图时为其添加识别器,然后当手势识别器调用您的操作方法时,您可以直接访问视图并使用识别器位置移动视图。