uiimageView的动画停止

时间:2011-07-24 12:15:22

标签: iphone xcode animation uiimageview

这是我想做的事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);
}

每2秒调用一次onTimer 但它不起作用,没有错误,但是当2秒后创建“imageView”时,它会移动并转到已创建的新“imageView”的相同方向。我怎么解决这个问题?对不起我的英语我是法国人:/

1 个答案:

答案 0 :(得分:0)

您将X和Y添加到所有图像视图中,但它始终是最后计算的值。创建一个X和Y值的数组,并使用与图像视图对应的值。

您定义imageViewArray的位置,同时将xArrayyArray定义为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);
}

这将使用您在-onTimer中设置的X和Y的值。