在项目碰到这个两问题,总结一下其共同原因:
(1)界面闪烁
在线程中使用了UI,即使用UIAlertView作网络异常提示, 由于网络正常的情况下很难进到代码块中,但是一旦网络异常就调用UIAlertView的show方法,导致界面的无端闪烁,像是设置了定时器在定时刷新界面一样。这个问题很隐蔽
(2).重绘不彻底
在线程中去设置UIImageView的image图像,结果总是不按自己代码设定显示图片,
两个问题的共性:都在线程中去访问了UI元素
解决办法,把访问UI的代码放到主线程当中去:
dispatch_async(dispatch_get_main_queue(), ^{
// access UI
});