当我以这种方式加载 BMP 图像时:
NSData * pImageData = [[NSData alloc] initWithBytesNoCopy:pBuffer length:dwSize freeWhenDone:NO];
UIImage * pLoaded = [[UIImage alloc] initWithData:pImageData];
[pImageData release];
并尝试使用 Quartz2D 显示该图像:
CGImageRef cgImage = [pLoaded CGImage];
CGContextSaveGState(context);
CGContextTranslateCTM(context, x, y*2 + h);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, CGRectMake(x, y, w, h), cgImage);
CGContextRestoreGState(context);
图像显示为黑色矩形,或者有时显示但不完全。当我在 initWithData 后睡眠 1 秒时,图像正确显示。
是否有 UIKit/Quartz2D API 方法来等待图像初始化完成?