ios - 在翻译动画期间跟踪 UIView 位置

标签 ios swift view uiviewanimation cgaffinetransform

我知道之前有人问过这个问题,但所有答案都在 Objective C 中提供,我正在寻找 Swift 解决方案。如果我错过了现有的 Swift 解决方案,请告诉我,我将关闭此问题。

这就是我制作动画 View 的方式:

UIView.animate(withDuration: 10.0, animations: { () in
   let translateTransform = CGAffineTransform.init(translationX: 0.0, y: Constants.screenHeight)
   self.icon.transform = translateTransform
})

我想做的是跟踪整个动画中的当前帧位置。我是否需要采取不同的方法来实现这一目标?

最佳答案

您可能想尝试在动画期间获取 View 的帧:

let currentFrame = myView.layer.presentation()!.frame

这将在代码运行时为您提供帧,因此如果您想要记录整个动画中的帧,您可能需要使用计时器(以前称为 NSTimer)。

在这个例子中,可选的是强制展开的,所以如果你不确定它是否为 nil,你可能需要使用 if-let 语句。

希望这对您有所帮助,如果您有任何其他问题,请告诉我。

关于ios - 在翻译动画期间跟踪 UIView 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841146/

相关文章:

ios - 如何访问创建的目录? - NSCocoaErrorDomain 代码=257

objective-c - 如何使 Swift 的协议(protocol)在 .h 文件中可见?

zend-framework - ZEND,用数据渲染不同的 View

android - MPandroidChart - 放大和缩小以仅适合 Y 轴上的值

ios - 在 React Native 0.68 中启用 TurboModule 和 Fabric 会导致很多错误

iOS 文本滚动到 TextView 内的顶部

swift - 在新行后重新排列 UILabel

python - 排序 one2manyfield openerpview

ios - 在 uiviewcontroller 中添加文本字段

ios - YouTube 嵌入式播放器介绍