我在应用程序的界面上有大约 10 个对象。这些对象基本上是一个按钮,具有发光显示哪个按钮在给定时间处于活动状态。当一个按钮被选中时,它的发光被打开,而所有其他按钮的发光被关闭。
要打开和关闭发光,我有这个
[buttons enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if (obj == sender)
[(myButtonClass *)obj showGlow];
else {
[(myButtonClass *)obj hideGlow];
}
}];
但我被迫改成这个
[buttons enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if (obj == sender)
[(myButtonClass *)obj showGlow];
else {
[(myButtonClass *)obj hideGlow];
}
}];
删除枚举的并发部分。问题在于,特别是对于某些按钮,发光需要 5 秒才能打开或关闭,但始终只针对相同的按钮。我的印象是它们处于一种按顺序处理的队列中(?????!!!)
showGlow/hideGlow 方法基本上是两行:设置一个变量和设置发光图像视图的隐藏属性打开和关闭。因此,这些是所有按钮的快速方法。
我不明白为什么某些按钮会出现问题,而其他按钮则不会,以及为什么当应用程序基本上空闲时处理一个块需要这么长时间。
任何线索?谢谢。