ios - 视网膜上的核心动画

标签 ios animation core-animation calayer retina-display

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

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

我正在做一个微弱(缓慢)的动画,并没有过多地移动图层。 (例如,在 9.1 秒的时间内将 layer.position.x 移动 10 个像素。这给了我们一个提示,即该层没有对 0.x 像素进行插值?)

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

有任何想法吗?

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

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

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

最佳答案

为了在 Retina 屏幕上正确设置动画,缺少了一行额外的代码 .. >.<

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

来自这个了不起的家伙:Retina display core graphics font quality

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

关于ios - 视网膜上的核心动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10663208/

相关文章:

ios - 具有阻尼效果的快速动画 spritekit

ios - 缩放 CALayer 会使 View 变得模糊

ios - 相邻的 CAShapeLayer 抗锯齿问题

ios - 带图像的 UIView

ios - 空 tableView 上没有结果标签

css - 如何使 `react-beautiful-dnd` 不触发 `react-transition-group` 动画?

swift - 将贝塞尔曲线路径置于 UIview 的中心?

ios - CAAnimation 为复选标记绘图设置动画

ios - 将目标添加到另一个 View Controller 中的按钮

ios - 水平堆栈 View 内的标签宽度相等?