更改UIImageView的属性

时间:2014-06-21 19:40:29

标签: ios arrays for-loop uiimageview

我把编程作为一种爱好,所以请忍受任何“旧学校”或完全错误的做法!

我正在尝试使用计时器在视图中移动三个图像。然后他们需要被另一个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];

所有三张图片都显示正常。问题是让这些移动。

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

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

1 个答案:

答案 0 :(得分:0)

为你分配标签UIImageViews应该可以工作:

imgObj.tag = i+1; //skipping 0 here since other subviews may have this tag

然后您应该可以通过

访问视图
[self.view viewWithTag:tag];

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