Определить конкретный вид изображения из нескольких изображений - PullRequest
0 голосов
/ 02 мая 2011

У меня есть один вид изображения, и я устанавливаю другие виды изображений на него и размещаю их в разных местах.Я хочу применить FLIP ANIMATION к представлению мага.Как это можно сделать?когда 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;


}

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

Ответы [ 7 ]

2 голосов
/ 29 апреля 2011

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

0 голосов
/ 02 мая 2011

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


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

0 голосов
/ 02 мая 2011

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

-(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 голосов
/ 02 мая 2011

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

0 голосов
/ 29 апреля 2011

В разных изображениях будут разные изображения, поэтому каждое изображение будет в разных позициях.

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

0 голосов
/ 29 апреля 2011

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

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

myImageView1.tag = 1;
myImageView1.tag = 2;
myImageView1.tag = 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...