我有一个UIView,它作为UIScrollView中的子视图放置。我有几个由UIView中的图像,文本和按钮组成的子视图。为了获得不错的滚动性能,我在UIView的图层上设置了shouldRasterize = YES
。这非常有效,因为性能提高了所以我可以平滑滚动并且不会造成问题,因为我的图形在绘制后是静态的。然而,问题是当我设置shouldRasterize时,光栅化图形在Retina显示屏上模糊且分辨率低。有没有办法让高分辨率图形光栅化以提高性能?
答案 0 :(得分:122)
似乎我需要将rasterizationScale设置为适当的设备值,如下所示。
myView.layer.rasterizationScale = [[UIScreen mainScreen] scale];
答案 1 :(得分:0)
我遇到了类似的问题 - 带有多个UIView
子视图的轮换UIImageView
。当我设置rasterizationScale = 2.0
时,图像变得更加清晰,但这会导致锯齿重新出现。为了解决这个问题,我创建了一个containerView
,其中包含UIView
和UIIMageView
s(以前是UIView的子视图)并将rasterizationScale = 1.0
应用于UIView
和rasterizationScale = 2.0
到UIImageView
。现在一切看起来都很不错。
答案 2 :(得分:0)
@Jamie Hamick在Swift 5中的回答:
myView.layer.rasterizationScale = UIScreen.main.scale