1

我创建了一个应用程序,登录后必须从 Web 下载新数据库,并且当您登录时,如果用户按是,则会出现自定义 UIAlertView,下载阶段将开始。当 UIAlertView 消失并且调用 UIAlertView 的委托时,我在后台线程上开始下载。现在我正在尝试修改显示当前百分比的标签并将自定义活动指示器添加到视图中。之后,当活动指示器更改图片或 label.text 获得新字符串时,屏幕开始闪烁,但仅在第一次启动时(安装后),如果我强制关闭应用程序并再次启动它,闪烁的事情不是出现,在以前版本的 iOS 上,应用程序不会闪烁。我在修改标签时从主线程调用。我尝试删除标签和活动指示器,并且在警报视图消失后应用程序不闪烁。我试图删除警报视图并立即开始下载,之后只有状态栏开始闪烁。

所以我的问题是:我应该怎么做才能解决闪烁错误?

4

1 回答 1

3

我相信原因是因为您正在后台线程上更新 UI。你不能这样做,你必须为此使用主线程:

要从后台线程在主线程上运行代码,可以使用 GCD:

dispatch_async(dispatch_get_main_queue(), ^{
    //your UI code here        
});

如果这不能解决错误,则可能是您的设备存在错误。

于 2013-03-14T08:02:50.903 回答