0

確認が必要な破壊的な操作がいくつかあり、UIActionSheetを使用しています。

clickedButtonAtIndex内で、UIActivityIndi​​catorViewを必要とするいくつかの長い操作を実行します。

問題は、UIActionSheetが閉じるまでUIActivityIndi​​catorViewが表示されないことです。これは、操作が終了したときに発生します。

ユーザーがいくつかのボタンを押して、clickedButtonAtIndexデリゲートが起動された場合でも、UIActionSheetを強制的に閉じることはできますか?

擬似コードの場合:

  • ユーザーが破壊的な操作をしたい
  • UIActionSheetで確認をリクエストする
  • ユーザーは「はい」と言います
  • Delegate clickedButtonAtIndexが起動し、長い操作を呼び出します
  • この操作、最初に行うことはUIActivityIndi​​catorViewを開くことですが、UIActionSheetがアクティブであるため、最後まで表示できません...

ありがとう、

r。

4

1 に答える 1

1

あなたは呼び出すことができます

CFRunLoopRunInMode(UITrackingRunLoopMode, 0.1, true);

長い計算を開始する前にUI要素を更新します。または、

-(void)doLengthyOperation {
   show_activity_indicator_view();
   [self performSelector:@selector(doRealLengthyOperation) withObject:nil afterDelay:0.1];
}
-(void)doRealLengthyOperation {
   // do the real lengthy operations.
}
于 2010-02-08T16:21:56.453 に答える