gpt4 book ai didi

iphone - 创建一个简单的 Simon 克隆 : How to wait between updates?

转载 作者:行者123 更新时间:2023-12-03 16:56:14 25 4
gpt4 key购买 nike

我正在学习 Cocoa/Objective-C/iPhone SDK,作为一个应用我所学知识的简单项目,我想创建一个旧版 Simon 游戏的简单版本。四个彩色按钮,向您显示一个序列(红色、绿色、蓝色、红色等),并且您必须重复该序列。

我相信我已经弄清楚了大部分内容,只保留一点:向用户显示序列。具体来说,如何实现按钮突出显示和 200 毫秒后恢复正常之间的延迟。

如果我在主运行循环中休眠,则更新不会正确发生(即使我显式调用 setNeedsDisplay)。如果我生成一个新线程,事情会很快变得复杂,因为我的类方法需要引用回 UI 元素(即时变量)。

有什么建议吗?

最佳答案

您可以使用 UIView 上的 +setAnimationStartDate: 方法来设置一些动画来执行此操作。为了确保在动画期间没有人按下您的按钮,请在动画开始时调用 -[UIApplication beginIgnoringInteractionEvents] 并在动画结束时调用 -[UIApplication endIgnoringInteractionEvents]。 p>

我正在谈论的内容的书面文本示例:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
button1.highlighted = YES;

[UIView beginAnimations:@"" context:nil];
[UIView setAnimationStartDate: CFAbsoluteTimeGetCurrent() + 0.2];
[UIView setAnimationsEnabled:NO];
button1.highlighted = NO;
[UIView commitAnimations];

[UIView beginAnimations:@"" context:nil];
[UIView setAnimationStartDate: CFAbsoluteTimeGetCurrent() + 0.25];
[UIView setAnimationsEnabled:NO];
button2.highlighted = YES;
[UIView commitAnimations];

// etc.

[[UIApplication sharedApplication] performSelector:@selector(endIgnoringInteractionEvents) withObject:nil afterDelay:yourTotalDelay];

关于iphone - 创建一个简单的 Simon 克隆 : How to wait between updates?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com