【发布时间】:2014-10-24 17:16:06
【问题描述】:
我有 9 个 uiimageview,让我们将它们命名为小图像视图,在一个容器视图中和 45 个图像(每组 9 个图像,这意味着我有 5 个组)。我还有 5 个 uiimageview,让我们将它们命名为大图像视图,向上动画(在超级视图中),每个图像从 5 个图像中挑选一个图像......小图像视图根据大图像视图显示的图像从组中挑选 9 个图像。希望这很清楚。
所以下面的if statement 检查哪个图像由小imageview1 显示,以及哪个图像由名为movingRectangle1 的移动大imageview 显示,然后运行我将在语句部分执行的任何代码。我使用UIImagePNGRepresentation 来检查图像,但它似乎会影响动画,因为我将它用于所有小图像视图,每个小图像视图 9 次,这使得每个大图像视图 81 (9 * 9) 次,我该如何使用标签来检查图像,当我调用if statement中的方法时,也许它可以帮助动画顺利运行。任何建议都非常受欢迎。我是 Objective c 的新手,花了 2 周时间试图解决这个问题,所以请来救我。提前致谢。
if ((touch.view == self.imageView1)
&& [UIImagePNGRepresentation(self.movingRectangle1.image) isEqualToData:UIImagePNGRepresentation(image_a)]
&& ([UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_b)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_c)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_d)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_e)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_f)])){
// seems converting to PNG over and over has a bad impact on any method called here, big imageviews start to animate erratically if i call any method here
NSLog(@"imageShape1 touched, correct view!");
}
else if ((touch.view == self.imageView1)
&& ([UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_g)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_h)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_i)]
|| [UIImagePNGRepresentation(self.imageView1.image) isEqualToData:UIImagePNGRepresentation(image_j)])){
NSLog(@"touched but Wrong view!");
}
【问题讨论】:
标签: objective-c image if-statement uiimageview tags