アプリのインターフェイスに約 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 メソッドは基本的に 2 行で構成されています。変数の設定と、グロー imageView の隠しプロパティのオンとオフの設定です。したがって、これらはすべてのボタンの高速な方法です。
私が理解できないのは、一部のボタンで問題が発生し、他のボタンでは発生しなかった理由と、アプリが基本的にアイドル状態のときにブロックの処理に時間がかかる理由です。
手がかりはありますか?ありがとう。