1. 程式人生 > >ios 中請求主執行緒重新整理UI

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];


            });
        }

這樣的方法來進行 訊息派送給主執行緒,進行重新整理。

相關閱讀