如何解决Swift:如何在Swift / SwiftUI中创建此动画?
我一直在研究动画,并且想知道如何在UIKit / SwiftUI中创建这样的动画?如果我要进一步研究动画,又叫什么动画?它不必是确切的布局,例如,单行uiview / uiimageview绰绰有余。我只需要知道执行这种动画的方式/方法。
解决方法
使用Swift / UIKit可以通过起诉CAKeyframeAnimation
来实现。以下是相同的示例代码。假设存在一个UIImageView
,名称为imageView
,请根据需要更改图像文件的名称。
func createPanXAnimation() {
let scaleLayer = CALayer()
scaleLayer.frame = imageView.bounds.insetBy(dx: -200,dy: -200)
scaleLayer.contents = UIImage(named: <#ImageResourceName#>)!.cgImage!
imageView.layer.addSublayer(scaleLayer)
let centerX = imageView.bounds.width/2.0
let xPositionArray: [NSNumber] = [100,200,250]
var timesArray: [NSNumber] = [0,0.3,0.6]
timesArray.append(1.0)
// Total loop time
let time : Float = 3
let animation = CAKeyframeAnimation(keyPath: "position.x")
animation.beginTime = 0
animation.duration = CFTimeInterval(time)
animation.repeatCount = Float.greatestFiniteMagnitude;
animation.isRemovedOnCompletion = false
animation.fillMode = CAMediaTimingFillMode.forwards
animation.autoreverses = true
animation.values = xPositionArray
animation.keyTimes = timesArray
//animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animation.calculationMode = CAAnimationCalculationMode.linear
scaleLayer.add(animation,forKey: "position.x")
}
希望它能给您一些想法,如果不是复制/粘贴解决方案。 ?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。