мультипликационная анимация iPhone - PullRequest
1 голос
/ 20 октября 2010

Я пишу свое первое приложение с анимацией, и у меня возникают некоторые проблемы. У меня есть ViewController, который программно создает определенное количество UIView, добавленных в качестве подпредставлений.

Теперь, когда я касаюсь одного из этих видов, я хотел бы переместить его в одном направлении (вверх, вправо, вниз, влево), но только если в этом направлении нет другого вида. Дело в том, как я могу спросить ViewController, если есть другое представление в одном направлении? Я попробовал:

// In the view controller:
+ (id)sharedInstance {
    static id master = nil;

    @synchronized(self)
    {
        if (master == nil)
        master = [self new];
    }

    return master;
}

...

// In the UIView subclass
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
     [[MyViewController sharedInstance] touchesEnded:touches withEvent:event launchedBy:numero.text];
}

...

// Finally the method
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event launchedBy:(NSString *)launcher 
{
    CGPoint coord = [[cells objectAtIndex:[launcher intValue]] coordinate];

    [NumberView beginAnimations:@"MoveAndStrech" context:nil];
    [NumberView setAnimationDuration:1];
    [NumberView setAnimationBeginsFromCurrentState:YES];

    if([touches count] == 1) {
        if ( ![map objectForKey:[NSString stringWithFormat:@"%d+%d",coord.x+64,coord.y]] ) {
            NSNumber *isAvailable = [NSNumber numberWithBool:NO];
            [map setValue:isAvailable forKey:[NSString stringWithFormat:@"%d+%d",coord.x,coord.y]];
            NSLog(@"Dati: %@ all'indice: %d",[cells objectAtIndex:[launcher intValue]-1], [launcher intValue]-1);
            [[cells objectAtIndex:[launcher intValue]] setCenter:CGPointMake((coord.x+64)/2, coord.y)]/* = CGPointMake((coord.x+64)/2, coord.y)*/;
            isAvailable = [NSNumber numberWithBool:YES];
            [map setValue:isAvailable forKey:[NSString stringWithFormat:@"%d+%d",coord.x+64,coord.y]];
        }
    }
    [NumberView commitAnimations];
}

Но NSLog (@ "dati ... дает (ноль). Как мне это сделать?

1 Ответ

0 голосов
/ 31 октября 2010

Я нашел решения для размещения клеток и карты в файле AppDelegate. Затем я получил к ним доступ от делегата. Спасибо.

...