我有几个选项:
- 把它放在左边的单元格里。imageView
- 把它放在右边的牢房里。AccesoryView
- 把它放在桌子上看,在桌子上(看起来真的很难看)
- 把它放在桌子上View,用overlayView覆盖所有桌子
哪种方法是正确的?(或者你还有其他想法吗?)我在苹果的表视图编程指南中找不到任何关于这一点的参考。
您没有指明是要在执行操作时阻止对应用程序的所有访问,还是只想禁用tableView。以下是我过去在想阻止对应用程序的所有访问时所做的:
- 禁用应用程序视图
- 在顶部添加一个黑色背景的新视图,但可能带有.6 alpha。可以做成150x150的圆角
- 将UIActivityIndicatorView添加到水平中心的黑色视图中,但略高于垂直中心
- 为一些状态文本添加标签,以通知用户正在发生的事情
- 后台任务完成后,删除该视图并重新启用应用程序视图
它为用户提供了一个完美的"等待"。
编辑:这是当进程在后台运行时,我用来禁用应用程序的代码:
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
[window setUserInteractionEnabled:NO];
从OP的建议编辑中添加:
如果由于某种原因,上述技术不起作用,其他解决方法是:
- 在您用来指示正在加载的视图上调用
setExclusiveTouch
- 调用
[[UIApplication sharedApplication] beginIgnoringEvents]
,然后在完成后调用[[UIApplication sharedApplication] endIgnoringEvents]
由于您没有进入另一个视图,听起来您可以将其作为附件视图,或者,如果您有导航栏,则将其放在那里。
在任何情况下,我都不会将其放在imageView上,因为该图像视图更多的是与单元格内容相关的图像。