2010-10-20 2 views
1

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

Теперь, когда я касаюсь одного из этих видов, я хотел бы переместить его в одном направлении (вверх, вправо, вниз, влево), но только если в этом направлении нет другого вида. Вопрос: как я могу обратиться к 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 (@ "дати ... дает (NULL) Как я должен делать. это?

+1

Где находится 'cell'? – deanWombourne

ответ

0

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

Смежные вопросы