在UIActionSheet之后打开UIActivityIndi​​catorView

时间:2010-02-08 16:11:52

标签: iphone uiactionsheet uiactivityindicatorview

我有一些需要确认的破坏性操作,我正在使用UIActionSheet。

在clickedButtonAtIndex中,我触发了一些需要UIActivityIndi​​catorView的长时间操作。

问题是在UIActionSheet关闭之前我无法看到UIActivityIndi​​catorView,并且在操作完成时会发生这种情况。

即使用户按下某些按钮并且他们的clickedButtonAtIndex委托被触发,我是否可以强制关闭UIActionSheet?

在伪代码中:

  • 用户想要做一些破坏性的操作
  • 使用UIActionSheet请求确认
  • 用户说YES
  • 委托clickedButtonAtIndex触发并调用一个长时间的操作
  • 这个操作,首先要做的是打开一个UIActivityIndi​​catorView,但由于UIActionSheet是活动的,我直到最后都看不到......

感谢,

1 个答案:

答案 0 :(得分: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.
}