视网膜上的核心动画

时间:2012-05-19 07:21:14

标签: ios animation core-animation calayer retina-display

我为Mac(可可)应用程序编写了一些代码,其动画流畅而可爱。但是,我将它复制到iOS项目中,然后在“新iPad”上运行它,这是一个分辨率的东西,由于某种原因,图层动画是锯齿状的。该图层突然向上移动几个像素,然后停止一秒,然后突然增加几个像素,这就像一个非常低的帧速率动画。)

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

我正在做一个微弱(慢)的动画,而不是移动图层。 (例如,在9.1秒的时间内移动一个layer.position.x 10个像素。这给我们一个暗示该图层不插入0.x像素的提示?)

我尝试将速度提高(减少持续时间)4,并且它没有问题。 :/但是,微弱的动画(慢)有问题..

任何想法?

如果我的问题含糊不清,这可能会有所帮助:

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

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

1 个答案:

答案 0 :(得分:6)

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

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

来自这个很棒的家伙:Retina display core graphics font quality

(我不认为我应该关闭这个问题,因为这个标题更合适,因为它解决了核心动画的所有视网膜问题)。