Ios 更改UIImageView的属性

Ios 更改UIImageView的属性,ios,arrays,for-loop,uiimageview,Ios,Arrays,For Loop,Uiimageview,我把编程作为一种爱好,所以请容忍任何“老派”或完全错误的做法 我正在尝试使用计时器在视图中移动三幅图像。然后,它们需要被另一个UIImageView避开。障碍物排成一列: objArray = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"img-1.png"], [UIImage imageNamed:@"img-2.png"],

我把编程作为一种爱好,所以请容忍任何“老派”或完全错误的做法

我正在尝试使用计时器在视图中移动三幅图像。然后,它们需要被另一个UIImageView避开。障碍物排成一列:

objArray = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"img-1.png"],
                                            [UIImage imageNamed:@"img-2.png"],
                                            [UIImage imageNamed:@"img-3.png"], nil];
然后,我有一个for循环来创建这些视图,我认为问题就是从这里开始的

count = [objArray count];
for(int i=0; i < count; i++)
{

    NSLog (@"Element %i = %@", i, [objArray objectAtIndex: i]);

    randX = arc4random_uniform(450);
    randX = randx + 50;
    randY = arc4random_uniform(236);
    randY = randy + 45;
    imgObj = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[objArray objectAtIndex:i]]];
    imgObj.center = CGPointMake(randX, randY);
    [self.view addSubview:imgObj];
    [self startAnimation];
count=[objArray count];
for(int i=0;i
所有三幅图像都显示正常。问题是如何移动这些图像

我理解计时器的需要,它是在startAnimation方法中启动的。我尝试过在for循环中设置一个标记。但是这总是会导致最后一个对象“img-3.png”,然后它会移动到ok


我的问题是:如何区分我在循环中创建的三个视图,以便在其他地方调用它们?

为UIImageView分配标记应该有效:

imgObj.tag = i+1; //skipping 0 here since other subviews may have this tag
然后,您应该能够通过

[self.view viewWithTag:tag];

或者您可以创建另一个
NSMutableArray
并将UIImageView存储在其中。

[UIImage ImageName:[objArray objectAtIndex:i]]
可以吗?因为objArray已经包含UIImages而不是nsstring…不,我想我不太同意它…[[UIImageView alloc]initWithImage:[objArray objectAtIndex:i]];如您所述创建了第二个阵列。这是正确的路径。谢谢!