来自类文件的可拖动图像

时间:2013-05-26 16:50:43

标签: ios objective-c cocoa-touch class

我理解如何制作可拖动的图像,但是我无法从我的主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。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

使用UIPanGestureRecognizer而不是你正在做的事情。在创建每个炸弹图像视图时为其添加识别器,然后当手势识别器调用您的操作方法时,您可以直接访问视图并使用识别器位置移动视图。