【发布时间】:2011-11-06 13:53:20
【问题描述】:
我有一个菜单,其中的项目每隔 3 秒就会一个接一个地弹出,我这样做是这样的:
for(UIButton *menuItem in menuItems){
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (0.3 * i) * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
[menuItem setAlpha:1.0];
}
}
是否可以在中间停止动画(例如,当触摸按钮时)? 我尝试将所有内容都设置为 alpha 1.0,但正如预期的那样,线程继续运行并再次显示项目。
将不胜感激任何想法:)
谢。
【问题讨论】:
-
与您的问题无关,但现在 UIKit 线程安全吗?
-
我真的不知道那是什么意思:>
-
除非在 iOS5 上发生了变化(我认为他们没有),否则你只应该通过主线程更新你的 UI。您的调度队列正在后台线程上更新 UI,这可能会导致您的应用出现不稳定问题。这是官方文档中的一些内容(页面底部)developer.apple.com/library/ios/#documentation/uikit/reference/…
-
我明白了。我实际上找不到更好的方法来做我想做的事。 (我想以 0.3 秒的间隔显示我的菜单项)。您会使用其他任何技术吗?非常感谢您指出这一点:)
-
您的问题仍然有效并且是一个很好的问题。如果我能提供帮助,我会考虑一下并在这里发布一些内容。
标签: ios nsthread uiviewanimation