我想在表格单元格中显示很多图片。我知道两种方法可以展示一张图片。
其中一种是创建UIImageView的实例并显示它
CGRect rect=CGRectMake(x,y,width,height);
UIImageView *image=[[UIImageView alloc]initWithFrame:rect];
[image setImage:[UIImage imageNamed:@"sample.jpg"]];
另一种方法是:
CGRect rect=CGRectMake(x,y,width,height);
[[UIImage imageNamed:@"sample.jpg"] drawInRect:rect];
现在,我的问题是这两者之间有什么区别?哪一个更有效?或者是否有其他更好的函数可用?
提前感谢...
-drawRect:
的优势就体现出来了。在旧硬件上,GPU 无法处理同时滚动大量透明视图而不掉帧的情况。绕过这个问题的一种方法是在-drawRect:
中完成所有合成操作,这将把繁重的 GPU 工作转换成一次性的 CPU 工作。虽然在 iPhone 4 和 iPad 上由于更快的 GPU,这不再是一个很大的问题,但在图形密集的表格视图单元格中,这仍然是一个相对常见的场景。 - Nick ForgeUIView.opaque
设置为YES
。 - rpetrichshouldRasterize
属性设置为YES
,作为在CPU上绘制的替代方法。这具有类似缓存重负载工作的效果,并且在某些情况下可能比在CPU上绘制具有更好的性能。 - rpetrich