按下单元格时在UITableView中使用UIActivityIndicatorView的正确方法



我有几个选项:

  1. 把它放在左边的单元格里。imageView
  2. 把它放在右边的牢房里。AccesoryView
  3. 把它放在桌子上看,在桌子上(看起来真的很难看)
  4. 把它放在桌子上View,用overlayView覆盖所有桌子

哪种方法是正确的?(或者你还有其他想法吗?)我在苹果的表视图编程指南中找不到任何关于这一点的参考。

您没有指明是要在执行操作时阻止对应用程序的所有访问,还是只想禁用tableView。以下是我过去在想阻止对应用程序的所有访问时所做的:

  1. 禁用应用程序视图
  2. 在顶部添加一个黑色背景的新视图,但可能带有.6 alpha。可以做成150x150的圆角
  3. 将UIActivityIndicatorView添加到水平中心的黑色视图中,但略高于垂直中心
  4. 为一些状态文本添加标签,以通知用户正在发生的事情
  5. 后台任务完成后,删除该视图并重新启用应用程序视图

它为用户提供了一个完美的"等待"。

编辑:这是当进程在后台运行时,我用来禁用应用程序的代码:

UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[window setUserInteractionEnabled:NO];

从OP的建议编辑中添加:

如果由于某种原因,上述技术不起作用,其他解决方法是:

  1. 在您用来指示正在加载的视图上调用setExclusiveTouch
  2. 调用[[UIApplication sharedApplication] beginIgnoringEvents],然后在完成后调用[[UIApplication sharedApplication] endIgnoringEvents]

由于您没有进入另一个视图,听起来您可以将其作为附件视图,或者,如果您有导航栏,则将其放在那里。

在任何情况下,我都不会将其放在imageView上,因为该图像视图更多的是与单元格内容相关的图像。

相关内容

  • 没有找到相关文章

最新更新