我有一个以非常慢的恒定速度向下移动的视图。
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有没有可能解决这个问题?
答案 0 :(得分:3)
一般来说,由于没有点亮部分像素的东西,简单的答案是“如果你不喜欢它看起来的样子,就不要这样做。”
但是,您可能能够从CALayer的allowsEdgeAntialiasing
属性中获得一些里程数;我不知道,因为我从来没有尝试过(它包括在你的 Info.plist 中投入一个开关,我相信,它可能会引入一些绘图效率低下,所以要小心)。