0

ドラッグ可能な画像を作成する方法は理解していますが、クラス ファイルの画像をメインの ViewController.m ファイルからドラッグできるようにするのに問題があります。私のクラスは「爆弾」と呼ばれています。2 秒ごとに、新しい爆弾が作成され、それとともに bombImage (爆弾のオブジェクト) が作成されます。爆弾は 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. どんな助けでも大歓迎です。

4

1 に答える 1

2

あなたがしていることの代わりに、UIPanGestureRecognizer を使用してください。作成時に各爆弾画像ビューにレコグナイザーを追加し、ジェスチャ レコグナイザーがアクション メソッドを呼び出すと、ビューに直接アクセスし、レコグナイザーの位置を使用してビューを移動できます。

于 2013-05-26T20:38:54.143 に答える