2011-05-02 3 views
0

У меня есть один вид изображения, и я задал ему другие изображения и поместил их в разных местах. Я хочу применить FLIP ANIMATION для просмотра мага. Как это можно сделать? if if (i == 1), тогда мое изображение просматривается. img1 - это мое изображение, и я хочу его идентифицировать. Я выделить 52 изображения в `imagearrОпределите конкретный вид изображения из нескольких изображений.

Мой код:

-(void)setCards 
{ 

    int k=0; 
    CGFloat dx = self.view.frame.size.width/2; 
    CGFloat dy = self.view.frame.size.height/2; 

    int cnt = [imagearr count]; 


    for (int j=1; j<3; j++)   // Number of cards 
    { 
     for (int i=1; i<5; i++)   // Number of players 
     { 
      int rnd = (arc4random() % cnt)-1; 
      UIImage *img = [imagearr objectAtIndex:rnd]; 
      UIImageView *img1 = [[UIImageView alloc] initWithImage:img]; 

      CGRect frame = img1.frame; 
      frame.size.width = frameX; 
      frame.size.height = frameY; 
      [img1 setFrame:frame]; 
      [img1 setTag:k+i]; 

      [UIView beginAnimations:@"Move" context:nil]; 
      [UIView setAnimationDuration:0.50]; 
      if (i==1) 
      { 
       [img1 setCenter:CGPointMake(dx+100, dy+(j*15))]; 

      } 
      if (i==2) 
      { 
       [img1 setCenter:CGPointMake(dx+(j*15), dy+60)]; 
      } 
      if (i==3) 
      { 
       [img1 setCenter:CGPointMake(dx-130, dy-(j*15))]; 
      } 
      if (i==4) 
      { 
       [img1 setCenter:CGPointMake(dx-(j*20), dy-95)]; 
      } 

      [self.view addSubview:img1]; 
      [UIView commitAnimations]; 
      [img1 release]; 

     } 
     k=k+10;  
    } 


} 

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [[event allTouches] anyObject]; 
    int t = [touch view].tag; 


} 

Я до сих пор не может определить конкретную ImageView. Пожалуйста, помогите мне решить эту проблему.

+1

Повторное задание того же вопроса здесь неприемлемо. Если вы хотите обратить внимание на свой вопрос, вам будет позволено [разместить щедрость на нем] (http://stackoverflow.com/faq#bounty) через два дня. Вы также можете [отредактировать свой вопрос] (http://stackoverflow.com/posts/5854016/edit), чтобы добавить дополнительную информацию, которая может упростить понимание и ответ на ваш вопрос. – Will

ответ

0

Я думаю, вы должны взглянуть на примере проекта компании Apple GeekGameBoard. Он реализует пасьянс, и вы сможете узнать, как выбрать s *, представляющие карты, перетащить их вокруг и взаимодействовать друг с другом.

* Это будет легче и, вероятно, лучше с точки зрения производительности, чем с использованием видов.

0

Связать уникальные значения тегов с каждым UIImageView экземпляров.

Код для справки.

myImageView1.tag = 1; 
myImageView1.tag = 2; 
myImageView1.tag = 3; 
0

Там будут разные образы в разных ImageView, так что каждый ImageView будет на различное положение.

В вашем методе касания вам нужно проверить границы касания, а затем вы должны соответствовать тому, какой образView находится под вашим сенсорным областью. В соответствии с этим вы можете продолжить свою функциональность.

2

Настройка тега для отдельного изображенияView - лучший подход. Используя тег, вы даже можете обнаружить множественные изображения, размещенные внутри ячеек таблицы, и установить действие для выбора отдельного тега.

0

Вы можете разместить невидимый UIbutton над вашими изображениями и просматривать событие касания. Эффект тот же, и его гораздо более чистый и простой. Дайте мне знать, если вам нужна дополнительная информация. Был бы рад изменить мой ответ здесь.

+0

спасибо за ответ, но я хочу сделать особый контакт с изображением, поэтому я хочу, чтобы это правильно ... – Anjan

+0

Да, вы закрываете свое изображение с помощью невидимой кнопки, и вы можете использовать тег или писать специальные обратные вызовы, чтобы получить событие касания. Я прочитал об этом и его рекомендуемую практику.Постарайтесь опубликовать соответствующие ссылки здесь. –

+0

И да, я использую его в своем приложении. –

0

вы могли бы попробовать что-то похожее на этот

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event //here enable the touch  
{ 
    // get touch event  
    UITouch *touch = [[event allTouches] anyObject]; 
    int t = [touch view].tag; 
    UIImageView *imageView = (UIImageView *) [self.view viewWithTag:t]; 

    //your logic here 
} 
+0

t устанавливается всегда 0 так ... – Anjan

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