Objective c 在“if语句”中调用方法会使UIImageView不稳定地移动

Objective c 在“if语句”中调用方法会使UIImageView不稳定地移动,objective-c,if-statement,uiimageview,uibutton,touchesbegan,Objective C,If Statement,Uiimageview,Uibutton,Touchesbegan,我不知道我遇到的问题是与执行有关还是与if语句有关。我有uiimageview和随机图像,它在屏幕上出现后立即选择,向上设置动画。uiimageView的动画制作非常流畅,但当我调用任何方法或在下面的if语句中放入一些代码时,uiimageView开始不规则地制作动画…wierd!令人困惑虽然代码执行得很好,但奇怪的移动给了调用的方法或代码第二次机会,我希望uiimageview即使在调用方法时也能继续平稳运行 我尝试使用按钮代替触摸开始和UIViewAnimationOptionAllowUs

我不知道我遇到的问题是与执行有关还是与if语句有关。我有uiimageview和随机图像,它在屏幕上出现后立即选择,向上设置动画。uiimageView的动画制作非常流畅,但当我调用任何方法或在下面的if语句中放入一些代码时,uiimageView开始不规则地制作动画…wierd!令人困惑虽然代码执行得很好,但奇怪的移动给了调用的方法或代码第二次机会,我希望uiimageview即使在调用方法时也能继续平稳运行

我尝试使用按钮代替触摸开始和UIViewAnimationOptionAllowUserInteraction,但问题仍然存在。ImageView位于容器中,因此它们根据动画uiimageview显示的图像进行响应

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)])){

        // wierd movements happen when I call a 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!");
         }

这是不相关的,但将标记分配给图像视图并比较标记,而不是将图像反复转换为PNG数据,这将是一种更有效的方法。+347到@rmaddycomment@rmaddy:我一直在尝试这样做,但我做不到,我在目标c中是新手,所以请您使用上面的if语句向我展示一下,我如何使用标签来完成它。提前谢谢。@VinsRach这是一个与您发布的问题不同的问题。我建议你或者重做这个问题,特别是关于如何让这些if语句与标记一起工作,或者在文章中单独提出一个关于这个主题的问题。不管是哪种方式,都要确保问题中包含了您试图与标记一起使用的代码,并解释了您与之相关的问题。