анимация uiimageView останавливается - PullRequest
0 голосов
/ 24 июля 2011

вот что я хочу сделать http://www.youtube.com/watch?v=rD3MTTPaK98 и вот мой код:

-(void) onTimer {


UIImage * image = [UIImage imageNamed:@"abouffer_03.png"];
imageView = [[UIImageView alloc] initWithImage:image];

[imageView setCenter:[self randomPointSquare]];

 [imageViewArray addObject:imageView];

[[self view] addSubview:imageView];

[imageView release];

ix=imageView.center.x;
iy=imageView.center.y;

X=(240-ix)/230;
Y=(160-iy)/230;
coteA=(240-ix);
coteB=(160-iy);
angleDeRotation=atan(coteB/coteA);
if(ix>250||0>iy>320){
    imageView.transform = CGAffineTransformMakeRotation(angleDeRotation+3.14);
}
else{
imageView.transform = CGAffineTransformMakeRotation(angleDeRotation);
}
}



-(void)onTimer2{
for(int i=0; i< [imageViewArray count];i++){
    imageView = [imageViewArray objectAtIndex:i];
    imageView.center = CGPointMake(imageView.center.x + X, imageView.center.y + Y);
}

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

1 Ответ

0 голосов
/ 24 июля 2011

Вы добавляете X и Y ко всем видам изображений, но это всегда последнее вычисленное значение. Создайте массив значений X и Y и используйте значение, соответствующее представлению вашего изображения.

Где вы определяете imageViewArray, также определяйте xArray и yArray как NSMutableArray с. Затем в -onTimer, когда вы установите X и Y, сделайте это:

[xArray addObject:[NSNumber numberWithFloat:X]];
[yArray addObject:[NSNumber numberWithFloat:Y]];

Наконец, в -onTimer2 сделайте следующее:

-(void)onTimer2{
for(int i=0; i< [imageViewArray count];i++) {
    float localX = [(NSNumber *)[xArray objectAtIndex:i] floatValue];
    float localY = [(NSNumber *)[yArray objectAtIndex:i] floatValue];

    imageView = [imageViewArray objectAtIndex:i];
    imageView.center = CGPointMake(imageView.center.x + localX, imageView.center.y + localY);
}

Это будет использовать значения X и Y, которые вы установили в -onTimer.

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