dispatch_async(dispatch_get_global_queue(0, 0), ^{
if (_signatureStr) {
NSData *baseData = [[NSData alloc] initWithBase64EncodedString:_signatureStr options:NSDataBase64DecodingIgnoreUnknownCharacters];
if (!baseData) {
return ;
}
self.signatureImage = [UIImage imageWithData:baseData];
}
if (!self.signatureImage) {
return ;
}
CGSize size = self.signatureImage.size;
CGFloat rate = size.height/size.width;
CGFloat view_w = SCREEN_WIDTH-30*2;
CGFloat view_h = view_w*rate;
CGFloat view_x = 30;
CGFloat view_y = 30;
[self.signatureView setImage:self.signatureImage];
self.signatureView.frame = CGRectMake(view_x, view_y, view_w, view_h);
dispatch_async(dispatch_get_main_queue(), ^{
[self.view addSubview:self.signatureView];
});
});
異步處理圖片哪痰,然后回到主線程addSubView
自点,看似沒有什么問題桐罕,確實(shí)沒什么問題,模擬器正常顯示桂敛,但是在我的iPhone5s 版本iOS 9.2.1功炮,卻不顯示圖片,然后用其他手機(jī)卻是正常顯示的术唬。只能說是系統(tǒng)問題吧薪伏!
修正部分
大神給我指出了錯誤點(diǎn),不能單單的把addSubview:
放在主線程中就萬事大吉了碴开,同時也應(yīng)該注意setImage:
這個操作毅该,UI的渲染還是必須放在主線程里面操作的,你看我這半吊子水平潦牛,看來還是要再嚴(yán)謹(jǐn)一點(diǎn)眶掌。
日常記錄一下