我把编程作为一种爱好,所以请忍受任何“旧学校”或完全错误的做法!
我正在尝试使用计时器在视图中移动三个图像。然后他们需要被另一个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”,然后移动好。
我的问题是:如何区分我在循环中创建的三个视图,以便在其他地方调用它们?
答案 0 :(得分:0)
为你分配标签UIImageViews应该可以工作:
imgObj.tag = i+1; //skipping 0 here since other subviews may have this tag
然后您应该可以通过
访问视图[self.view viewWithTag:tag];
或者您可以创建另一个NSMutableArray
并将UIImageViews存储在其中。