2012-05-19 50 views
1

我为Mac(可可)应用程序编写了一些代码,其中动画非常流畅和可爱。但是,我将它复制到了iOS项目中,并在“新iPad”上运行,这是解决问题的方式,并且出于某种原因,图层动画呈锯齿状。图层突然向上移动几个像素,然后停止一秒,然后突然再移动几个像素,就像一个非常低的帧率动画)。视网膜上的核心动画

有趣的是,在老iPad 1上运行相同的代码给出了平滑的结果! x(..让我意识到这是一个视网膜显示问题

我正在做一个微弱的(慢)动画,而不是移动很多层(例如,移动一个layer.position.x 10个像素的一段时间9.1秒这意味着图层没有插入0.x像素吗?)

我试着将速度(减少持续时间)增加四倍,并且它没有问题地动画:/但是, ?动画(慢)有问题..

任何想法

如果我的问题是模糊的,这可能帮助:

在10秒的时间内移动10个像素的图层。在iPad上,它看起来很棒(假设是60 FPS)。

在新的iPad(视网膜)上,就好像它是10 FPS(或类似的东西)!!

回答

6

要在Retina屏幕上正确动画,缺少一行额外的代码..>。 <

if ([subLayer respondsToSelector:@selector(setContentsScale:)]) { 
     subLayer.contentsScale = [[UIScreen mainScreen] scale]; 
    } 

从这个真棒家伙:Retina display core graphics font quality

(我不认为我应该关闭的问题,因为这个冠军是比较合适的,因为它与核心动画解决所有问题视网膜)。