如何在NSArray上标记图像

时间:2014-08-12 03:58:34

标签: ios objective-c uiimageview

我的应用程序中心有一个UIImageview,它在我的所有图像上依次运行(16张图像)。 我需要“标记”UIImageview上出现的图像,然后我可以创建一个条件来运行另一个代码。

//here is my code 


pics = [NSArray arrayWithObjects:

        [UIImage imageNamed:@"1.png"],
        [UIImage imageNamed:@"2.png"],
        [UIImage imageNamed:@"3.png"],
        [UIImage imageNamed:@"4.png"],
        [UIImage imageNamed:@"5.png"],
        [UIImage imageNamed:@"6.png"],
        [UIImage imageNamed:@"7.png"],
        [UIImage imageNamed:@"8.png"],
        [UIImage imageNamed:@"9.png"],
        [UIImage imageNamed:@"10.png"],
        [UIImage imageNamed:@"11.png"],
        [UIImage imageNamed:@"12.png"],
        [UIImage imageNamed:@"13.png"],
        [UIImage imageNamed:@"14.png"],
        [UIImage imageNamed:@"15.png"],
        [UIImage imageNamed:@"16.png"],
        nil];


 self.centreImage.animationImages = pics;

self.centreImage.animationDuration = 20.0;
self.centreImage.animationRepeatCount = INFINITY;
[self.centreImage startAnimating];

// here is when the condition has to  "detect the image/tag"    
if (centreImage.image == [UIImage imageNamed:@"1.png"]);

//run this code

任何帮助都会非常感激 谢谢

2 个答案:

答案 0 :(得分:0)

您可以为每个NSObject创建UIImage。在NSObject内,你可以创建所有图像属性 - 属性和标签等。之后,您将在NSArray中创建UIViewController,并将这些NSObject添加到NSArray

答案 1 :(得分:0)

if (centreImage.image == [UIImage imageNamed:@"1.png"]);

失败,因为imageNamed:可能会返回新图片。

我建议尝试提取图像索引:

NSUInteger imageIndex = [pics indexOfObject:centreImage.image];

此处,0将是您的第一张图片,1是您的第二张图片,等等。

对此的改进是在切换到新图像时捕获图像的索引。

进一步的改进是避免将所有图像加载到阵列中,只需根据需要加载图像。在这里,您将跟踪图像的数字文件名,并根据需要构建文件名。