在UIKit中显示像素的分数以获得平滑的慢动作

时间:2015-04-28 15:58:03

标签: ios cocoa-touch uikit

我有一个以非常慢的恒定速度向下移动的视图。

var updater = CADisplayLink(target: self, selector: Selector("loop"))

func loop() {
    view.center = CGPointMake(view.center.x, view.center.y + 0.01)
}

loop每秒调用60次,移动视图0.01点。 0.50点是视网膜上的像素。

据我所知,UIKit只显示全像素。对我来说有一个问题,因为只有当Y-coord乘以0.50时,视图才会在屏幕上移动。但它大约是1.2 fps而不是预期的60.它看起来很糟糕,不顺畅。

UIKit有没有可能解决这个问题?

1 个答案:

答案 0 :(得分:3)

一般来说,由于没有点亮部分像素的东西,简单的答案是“如果你不喜欢它看起来的样子,就不要这样做。”

但是,您可能能够从CALayer的allowsEdgeAntialiasing属性中获得一些里程数;我不知道,因为我从来没有尝试过(它包括在你的 Info.plist 中投入一个开关,我相信,它可能会引入一些绘图效率低下,所以要小心)。