Iphone uiimageView停止的动画

Iphone uiimageView停止的动画,iphone,xcode,animation,uiimageview,Iphone,Xcode,Animation,Uiimageview,这是我想做的 这是我的代码: -(void) onTimer { UIImage * image = [UIImage imageNamed:@"abouffer_03.png"]; imageView = [[UIImageView alloc] initWithImage:image]; [imageView setCenter:[self randomPointSquare]]; [imageViewArray addObject:imageView]; [[self view

这是我想做的 这是我的代码:

-(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);
}
-(void)onTimer{
UIImage*image=[UIImage ImageName:@“aboutfer_03.png”];
imageView=[[UIImageView alloc]initWithImage:image];
[imageView设置中心:[自随机点方形]];
[imageViewArray addObject:imageView];
[[self view]addSubview:imageView];
[图像视图发布];
ix=imageView.center.x;
iy=imageView.center.y;
X=(240 ix)/230;
Y=(160 iy)/230;
coteA=(240 ix);
coteB=(160 iy);
角度旋转=atan(coteB/coteA);
如果(ix>250 | 0>iy>320){
imageView.transform=CGAffineTransformMakeRotation(角度旋转+3.14);
}
否则{
imageView.transform=CGAffineTransformMakeRotation(角度旋转);
}
}
-(无效)onTimer2{
对于(int i=0;i<[imageViewArray计数];i++){
imageView=[imageViewArray对象索引:i];
imageView.center=CGPointMake(imageView.center.x+x,imageView.center.y+y);
}
onTimer每2秒调用一次
但它不起作用,没有错误,但当2秒后创建“imageView”时,它会移动并转到新“imageView”的同一方向已创建。我如何解决此问题?对不起,我的英语是法语:/

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

在定义
imageViewArray
的地方,也将
xArray
yArray
定义为
NSMutableArray
s。然后在
-onTimer
中,设置X和Y时,执行以下操作:

[xArray addObject:[NSNumber numberWithFloat:X]];
[yArray addObject:[NSNumber numberWithFloat:Y]];
-(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);
}
最后,在
-onTimer2
中,执行以下操作:

[xArray addObject:[NSNumber numberWithFloat:X]];
[yArray addObject:[NSNumber numberWithFloat:Y]];
-(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);
}
-(void)onTimer2{
对于(int i=0;i<[imageViewArray计数];i++){
float localX=[(NSNumber*)[xArray objectAtIndex:i]floatValue];
float localY=[(NSNumber*)[yArray objectAtIndex:i]floatValue];
imageView=[imageViewArray对象索引:i];
imageView.center=CGPointMake(imageView.center.x+localX,imageView.center.y+localY);
}

这将使用您在
-onTimer

中设置的X和Y值查看这一行:
imageView.center=CGPointMake(imageView.center.X+X,imageView.center.Y+Y)
X和Y来自哪里?使用
-onTimer
方法。但是只有一个X和一个Y,所以每次设置它们时,都会覆盖以前的值。这不起作用,我不知道为什么。我使用你的代码在.h中初始化xArray和yArray,并查看didload。你必须比“它不起作用”更具体屏幕上没有imageView的图像未显示imageView