0

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

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

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

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

在伪代码中:

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

谢谢,

河。

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 回答