在我的iPad应用程序中,我渲染到离屏位图,然后将位图绘制到屏幕上。 (这是因为我想重新使用现有的位图渲染代码。)在iPad 2上,这很像一个魅力,但在带有Retina显示屏的新iPad上,绘制位图非常慢,即使其分辨率仍然是相同。要绘制位图,我们使用常规的Quartz 2D函数:CGImageCreate
与由CGDataProviderCreateWithData
创建的数据提供程序,32位RGBA格式和kCGImageAlphaNoneSkipLast
。在显示位图的UIView
中,在drawRect:
中,我们使用CGContextDrawImage
将其绘制到由UIGraphicsGetCurrentContext
返回的上下文中。在Retina iPad上使用CoreGraphics绘制图像很慢
请注意,我甚至没有试图以双倍分辨率绘制:现在我很好,与我在iPad 2上使用相同的分辨率。它看起来像CoreGraphics内部加倍像素,然后发送即使我制作的CGImage
应该可以直接传递给GPU。有任何想法吗?
感谢您的信息,这可能将有很大的帮助。该视图是动画的,因此经常重绘。我认为这是使用view.layer。内容可能比将新图像分配给UIImageView更有效,对吧? –
试过了,view.layer.contents方法出色,再次感谢! –
AFAIK这两种方法在性能上几乎相同,但一如既往:如果重要,试试看看。 –