我正在研究Iphone应用程序和新的开发人员。如果我的问题非常基本,我很抱歉。我搜索网,但无法得到答案。
我的问题是,当用户触摸iphone时,我希望立即执行该事件,而不是等待上一个事件完成。 我在touchBegan方法中调用while循环(存在于不同的类中)。当我得到另一个触摸事件时,我想停止那个循环。但是,触摸开始时我仍然没有调用touchBegan事件(而是排队)。
任何人都可以帮我解决如何立即触发触摸事件,而不是等待上一个事件结束。
提前谢谢。
答案 0 :(得分:1)
在iPhone上,一个事件必须在处理下一个事件之前运行完成。基本上,您希望代码不会长时间运行,以便您的应用程序能够对用户输入做出响应。
有很多方法可以解决这个问题。
或者将循环转换为主线程上的多个事件。您可以通过以下方式执行此操作:
- (void)initializeLoop
{
loopCounter = 0;
[self performSelector:@selector(nextLoop) withObject:nil afterDelay:0.0];
}
- (void)nextLoop
{
loopCounter++;
if (loopCounter<MaxCount)
[self performSelector:@selector(nextLoop) withObject:nil afterDelay:0.0];
}
这样,可以在这些其他事件之间处理新的touchEnded事件。将延迟设置为高于0.0将使应用程序更具响应性。