ios - 在 Swift 4 中使用 draw-move for 循环制作动画
问题描述
我正在尝试通过将对象绘制到屏幕、等待、调整对象的位置和重绘,在 Xcode IDE 上使用 Swift 4 为 iOS 创建屏幕动画。但是,当我在 for 循环中执行此操作时,屏幕只是等待然后将对象绘制到最终位置。为什么要这样做?如何以我想要的方式制作动画?是否有另一种我应该考虑的动画制作方法?
我的代码在这里:
var counter = 0
for n in 0...10{
counter = counter + 1
draw_wheel(counter)
sleep(1)
}
我只是在 10 秒后看到我试图在其最终方向上绘制的对象。
解决方案
如果您想随着时间的推移逐步创建动画,您应该考虑使用CADisplayLink而不是 Timers 或循环。
基本上 CADisplayLink 是一个计时器对象,它允许您的应用程序将其绘图同步到显示器的刷新率并根据时间戳进行绘图。
func createDisplayLink() {
let displaylink = CADisplayLink(target: self,
selector: #selector(step))
displaylink.add(to: .current,
forMode: .default)
}
@objc func step(displaylink: CADisplayLink) {
print(displaylink.timestamp)
}
推荐阅读
- php - Yii2 - 日期选择器在数据库和索引页面中显示 0000-00-00
- r - PCA关于在R中扩展窗口数据集
- stripe-payments - 使用新创建的帐户时出现条带错误“No such payment_intent: pi_1GS0redacted”
- java - 为什么在使用 setter 和 getter 时 void 方法中的公式在子类中不起作用?
- ios - 我可以在 ios 应用程序图标上显示星号或圆点而不是徽章计数吗?
- javascript - 如果我有来自 AWS textract 方法(StartDocumentAnalysis)的 JobId,如何找到提取的文本?
- javascript - 可以通过firebase功能访问firebase admin
- android - 带有阿拉伯语的 Android RTL 布局在小米设备中不起作用
- angular - 在使用数据源实现角度材质时,连接和断开连接,出现错误
- javascript - 如何在单击按钮时生成带有选择选项标签和一些按钮的 div?