Масштабировать изображение каждый раз, когда оно сталкивается с другим - PullRequest
1 голос
/ 29 июня 2011

вот мой код:

-(void)collision{
    if(CGRectIntersectsRect(imageView.frame,centre.frame)){
        imageView.alpha=0;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0f];
        centre.transform=CGAffineTransformMakeScale(1.3, 1.3);
        [UIView commitAnimations];
    }
}

Когда imageView сталкивается с центром, центр становится больше.Моя проблема в том, что когда «imageView» сталкивается с «центром» во второй раз, анимация не работает.Я хочу, чтобы центр увеличивался, увеличивался и увеличивался каждый раз, когда imageView сталкивался с центром, но он становился больше всего один раз.Извините за мой английский, я французский: / Как я могу решить это, пожалуйста?

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Может быть, шкала не применяется после.Попробуйте увеличивать значение шкалы каждый раз.Объявите float, чтобы отслеживать масштаб объекта.Затем во время каждого столкновения перед выполнением CGAffineTransformMakeScale(scale, scale) сделайте следующее:

scale = scale + 0.3;

Пример

-(void)collision{
    if(CGRectIntersectsRect(imageView.frame,centre.frame)){
        scale = scale + 0.3;
        imageView.alpha=0;
        [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:1.0f];
        centre.transform=CGAffineTransformMakeScale(scale, scale);
        [UIView commitAnimations];
    }
...
2 голосов
/ 29 июня 2011

Причина, по которой ваше представление не масштабируется во второй раз, заключается в том, что вы применяете к нему одно и то же преобразование каждый раз - вам нужно каждый раз менять применяемое преобразование:

...
centre.transform = CGAffineTransformScale(centre.transform, 1.3, 1.3);
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...