循环时等待用户触摸内部

时间:2012-03-27 07:43:03

标签: iphone objective-c ios

是否可以在while循环中等待用户触摸?我的意思是,如果我有一个带有“完成”按钮的视图,我有一个这样的循环:

while (ending == FALSE) {
    ...
    /* Do something */ 
    ...

    /* WAIT for user to touch "Finish" button and when this occurs, set ending=TRUE so the loop can finish */

    ...
    /* Do something more*/
    ...
}

我想过用另一个while循环这样做:

while (myVar == FALSE) {
    /* Do nothing */
}

修改按钮动作以更改两个变量(“结束”和“myVar”),但我认为它不是最有效的解决方案,它会占用大量内存或CPU?

2 个答案:

答案 0 :(得分:0)

我很确定你的while循环实际上会阻止你的程序并且不允许获得任何触摸。如果您在等待按下按钮时确实需要执行某些操作(例如更新屏幕),则可以使用NSTimer定期激活方法。按下按钮时,它将在您的更新方法不起作用的某个时刻触发相关的答案。如果您在等待期间需要执行的操作与UI无关,则可以考虑在另一个线程上执行此操作,而不是定期执行nstimer更新。

答案 1 :(得分:0)

如果有效,请添加评论作为答案。

你能否使用NSTimer?基本上设置一个10秒的时间(甚至不需要那么长)并且只是让它循环,当用户做某种事件然后只是使[theTimer invalidate]的时间无效。然后你可以告诉用户他们花了多长时间来转向