我想多次显示相同的UIView。目前,我将绘图放在主UIView中,然后使用renderInContext:和UIGraphicsGetImageFromCurrentImageContext将其复制到图像中。然后我将其他代理UIViews的内容设置为此图像。
UIGraphicsBeginImageContext(size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * clonedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return [clonedImage CGImage];
我遇到了renderInContext:call的瓶颈,大概是因为它必须复制视图的图像。我在resample_byte_h_3cpp和resample_byte_v_Ncpp看到热点,但我不确定这些是在做什么。
是否可以多次显示相同的UIView以减少此开销?或者有更有效的方式来渲染图像吗?
答案 0 :(得分:1)
如何制作UIImage的副本而不是在UIView中反复生成新图像?
//.. Create the clonedImage from UIView
CGImageRef cgImageRef = [clonedImage CGImage];
UIImage *twinImage = [[UIImage alloc] initWithCGImage:cgImageRef];
//.. Use the images
[clonedImage release]; // if needed
[twinImage release]; // if needed