2010-12-17 99 views
48

我有一个UIView作为子视图放置在UIScrollView中。我有几个由UIView中的图像,文本和按钮组成的子视图。为了获得像样的滚动性能,我在UIView的图层上设置了shouldRasterize = YES。这个效果很好,性能提高了,所以我有平滑的滚动,并且不会造成问题,因为我的图形一旦被绘制就是静态的。但是,问题在于,当我设置shouldRasterize时,光栅化图形在Retina显示屏上模糊且分辨率低。有没有办法让高分辨率图形进行光栅化处理以提高性能?在CALayer中的性能滚动和视网膜分辨率图像

回答

120

似乎我需要rasterizationScale设置为正确的值的装置如下。

myView.layer.rasterizationScale = [[UIScreen mainScreen] scale]; 
+1

父层是否也需要使用相同的rasterizationScale或不重要? – Crashalot 2016-01-27 01:22:30

0

我有一个类似problem--旋转的UIView几个UIImageView子视图。当我设置rasterizationScale = 2.0时,图像变得更加清晰,但是这导致锯齿重新出现。为了解决这个问题,我创建一个containerView将保持所述UIViewUIIMageView秒(这在以前是UIView的子视图)和施加rasterizationScale = 1.0UIViewrasterizationScale = 2.0UIImageView秒。现在一切看起来都很好。

+1

我建议使用timeuser建议的更简单的解决方案。 – mbinna 2013-01-31 11:03:08