UIAlertView开始显示,屏幕变暗,但它不会popup,直到为时已晚!
我有一个button,当按下时调用加载信息从一系列的URL(约5秒的加载时间)。 在实际进行这些调用之前,我想添加一个“加载”警报。 当我使用UIAlertView的时候,屏幕变暗就像popup一样,但是直到数据被加载 – 太迟了! 我不知道发生了什么事情,就像加载数据的调用立即优先于显示新视图,即使它们是在添加新视图(或显示警报)的调用之后立即进行的, 。 这是代码的汇总版本:
-(void) refresh{ UIAlertView *av = ... [av show]; //this should pop up before dat begins to load [myDataSource loadData]; //this contains a series of [NSData initWithURL] calls [self.tableView reloadData]; //here I would hide the AlertView, but if I do I see it for just s split second //when the tableView has already reloaded }
在此先感谢您的任何见解!
***编辑任何人谁使用performSelectorInBackground小心增加复杂的创build什么是有效的线程化程序。 例如,泄漏可能会出现,因为新线程没有autorelease池 – 你必须添加一个,等等。
当你试图从互联网上检索数据(我猜你正在使用像[NSString stringWithContentsOfURL:…])主线程正在等待这些数据,因此应用程序无法重新绘制接口。 你可以尝试使用:
[mySourceData performSelectorInBackground:@selector(loadData) withObject:nil];
如果你正在使用coredata在对它进行任何操作之前lockingNSManagedObjectContext并在完成时解锁它,请小心。
如果你有一堆执行的操作,除了performSelectorInBackground:像cescofry写的,你可以使用NSOperation和NSOperationQueue。
无论如何,你可能不想要一个UIAlertView。 看看GitHub上的MBProgressHUD 。
- 在连接的iPhone上启动已安装的应用程序
- 使用dispatch_async或performSelectorOnMainThread在主线程上执行UI更改?
- 如何添加触摸手势映射,但忽略引脚和注释触摸?
- 如何从json字典自动创build模型类(NSObject)?
- xcode Interface Builder背景颜色首选项
- prepareForSegue冻结后更新到iOS9
- 用于指定视图大小何时依赖于多个子视图的约束
- 有没有办法在iOS中使用表格视图来deviseTinder / Twitter-self-profile-header效果?
- 在iOS上渲染纹理OpenGL ES在模拟器上工作,但不在设备上