作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 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/
我是一名优秀的程序员,十分优秀!