ios 中请求主线程刷新UI

Posted remote_roamer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 中请求主线程刷新UI相关的知识,希望对你有一定的参考价值。

ios中只有主线程 才能立即刷新UI。如果是通过侦听异步消息,触发回调函数,或者调用异步方法,请求刷新UI,都会产生线程阻塞和延迟的问题。

可以通过 

        if ([NSThread isMainThread])
        
            [self.downloadMapBtn setImage:[UIImage imageNamed:@"download_map.png"] forState:UIControlStateNormal];
            [self.downloadMapBtn setNeedsDisplay];
        
        else
        
            dispatch_sync(dispatch_get_main_queue(), ^
                //Update UI in UI thread here
                [self.downloadMapBtn setImage:[UIImage imageNamed:@"download_map.png"] forState:UIControlStateNormal];
                [self.downloadMapBtn setNeedsDisplay];


            );
        

这样的方法来进行 消息派送给主线程,进行刷新。


相关阅读


http://www.ios-developer.net/iphone-ipad-programmer/development/threads/updating-ui-controls-on-background-threads


http://www.raywenderlich.com/4295/multithreading-and-grand-central-dispatch-on-ios-for-beginners-tutorial

以上是关于ios 中请求主线程刷新UI的主要内容,如果未能解决你的问题,请参考以下文章

iOS 子线程下载 主线程刷新UI

iOS-主线程刷新UI+单例

iOS中多线程的实现方案

iOS子线程操作UI

ios子线程怎样能开启NSTimer

android 怎么刷新UI组件