iOS 真机不显示图片

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,看似没有什么问题,确实没什么问题,模拟器正常显示,但是在我的iPhone5s 版本iOS 9.2.1,却不显示图片,然后用其他手机却是正常显示的。只能说是系统问题吧!

修正部分

大神给我指出了错误点,不能单单的把addSubview:放在主线程中就万事大吉了,同时也应该注意setImage:这个操作,UI的渲染还是必须放在主线程里面操作的,你看我这半吊子水平,看来还是要再严谨一点。

日常记录一下

你可能感兴趣的:(iOS 真机不显示图片)