Objective-C中的循环问题

Objective-C中的循环问题,objective-c,Objective C,两个循环都有两个问题 第一个问题,是否有可能使循环(while或其他东西)等待我的命令 例如,我需要选择一个可能的移动,直到我有机会下一步,我必须有机会选择 While(eat==1){ if(CGRectContainsPoint([BOX9 frame], [touch locationInView:self.view])){ eat=0; } } 我的问题是,当在圆圈和盒子中旋转时,9不能被按下,因为旋转和旋转。我需要一些循环,旋转圆圈,但将允许选择下一个命令。我希望我是清

两个循环都有两个问题

第一个问题,是否有可能使循环(while或其他东西)等待我的命令

例如,我需要选择一个可能的移动,直到我有机会下一步,我必须有机会选择

While(eat==1){
  if(CGRectContainsPoint([BOX9 frame], [touch locationInView:self.view])){
   eat=0;
  }
}
我的问题是,当在圆圈和盒子中旋转时,9不能被按下,因为旋转和旋转。我需要一些循环,旋转圆圈,但将允许选择下一个命令。我希望我是清楚的,英语不是我的强项


第二个问题

第二个问题是while循环。触摸时,我将图像从UIimageView控制器显示到另一个控制器。有时我有更多的动作,我需要使用,因为我永远不知道我会有怎样的动作。我想让这个动作慢一点

如果我写的代码是我想要的
uiimage1.image=someimage很好用。但问题是当我说例如:

uiimage1.image=someimage; 
while(eat==1){
uiimage2.image=uiimage1.image;
uiimage1.image=NULL;
uiimage3.image=uiimage1.image;
}
(这是我现在为更好地解释这个问题而编写的唯一示例代码。)

如果我在“while loop”中做一些等待,我总是会看到只有第一张图片的显示速度较慢,而第二张图片的显示速度较快

我尝试使用过渡效果使速度变慢,但这仅在我使用触摸在imagecontroller中加载一些图片时有效。如果我用代码编写,转换将无法工作

所有都在
触摸开始功能中


谢谢您的帮助。

所以,据我所知,您正在制作一个游戏,并希望将其动画化。您的问题是while循环位于主线程上,因此在它们完成之前,不会接受任何用户输入,屏幕也不会刷新

有几种方法可以解决这个问题,所有这些方法都涉及到移动“实时”发生的事情的执行,我指的是呈现给用户的事情,脱离主线程

第一个:使用
scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
创建一个
NSTimer
。选择器“实时”处理事物的动画。调用
touchesbeated
时,设置标志
eating
。这在代码中大致类似

-(void) setUp

{

       NSTimer scheduleTimerWithTimeInterval: 1.0 
                                      target: self 
                                    selector: @selector(runLoop) 
                                    userInfo: NULL 
                                     repeats: YES];
}

-(void) runLoop
{
    if(eatingDuration && eating)
    {

        eatingDuration--;
        //do something because we're eating
     }         

}

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 {
      //if we need to set eating to yes do it

             eating = YES;
             eatingDuration = whatEverWeNeedItToBe;
 }
这可能被认为是一个“运行循环”,因为它会被反复调用,直到您摆脱计时器。这可能是最好的方法


第二个:使用UIView的
animateWithDuration:animations:
类方法为每个元素设置动画

我不确定我是否理解你写的内容,但答案是否定的。如果while循环,你不能等待。你想解决什么问题?我需要为大学做一些游戏,类似于国际象棋,但在吃了一个相反的数字后,我可以吃得更多,直到我没有机会。虽然循环是为了检查我的机会,在我采取行动并尽我所能吃下之前不要更换球员。我不知道我会怎么吃,我是靠触摸来吃的。我不知道如何更好地解释。而直到我有机会下一次吃东西,循环的内部可能有一个图像控制器,当我吃人的时候,我可以移动我的身体。我希望这是更清楚的。是的,我想我明白所有的,我会帮助我,我会尝试用代码实现,非常感谢。