2013-12-17 4 views
0

Я работаю над новой игрой, где вы будете перемещать изображение вокруг.UITouch с пользовательским UIView не работает

Я создал свой собственный UIView, UIPuzzle, в котором я использовал UIImageView и некоторое значение. Затем я создал новый класс UIPuzzleView, в котором я создал таблицу из UIPuzzle (UIPuzzle tab[16];)

Я добавил его на главном экране и работает отлично (я пытался оживить все из них). Но затем я хочу использовать -(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;, чтобы проверить, какой из UIPuzzle был нажат.

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 

    UITouch* touch = [touches anyObject]; 

    int i = [self getTouchedView:[touch view]]; // this function returns me what UIPuzzle was clicked 

    if(i != NAN){ 
     NSLog(@"%i", i); 
    } 
} 


-(int) getTouchedView:(UIView*)touch{ 
    for(int i = 0 ; i < 4*4 ; i ++) 
     if(touch == gread[i]) 
      return i; 

    return NAN; 
} 

Вот функция, которая добавляет UIPuzzle по мнению

-(void)initGread{ 

    int value = 0; 
    for(int i = 0 ; i < 4 ; i ++){ 
     for(int j = 0 ; j < 4 ; j ++, value ++){ 
      // setting size and pozition of single UIPuzzle 
      gread[value] = [[UIPuzzle alloc] initWithFrame:CGRectMake(j*70 + 70, i*70 + 70, 120, 120)]; 
      // setting picture and value to UIPuzzle 
      [gread[value] setValue:value picture:[UIImage imageNamed:@"549823.jpg"]]; 
      // adding UIPuzzle to View 
      [self addSubview:gread[value]];                 
     } 
    } 
} 

Это должно работать, но это не так. Он возвращает некоторое случайное число, но только на gread[0], gread[1], gread[4], gread[5].

ответ

0

Я не понимаю, почему он не работает. Но вместо вызова getTouchedView,
вы можете использовать ниже код

if([[touch view] isKindOfClass:[UIPuzzle class]) 
    return ( (UIPuzzle*)[touch view] ).value; //because you are already setting value right. 
+0

я использовал getTouchedView, чтобы получить то, что жадность была нажата, поскольку значения и изображения будут меняться. Но tnx для помощи я попытаюсь использовать его. – poppytop

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