我一直在研究动画,想知道如何在 UIKit/SwiftUI 中创建这样的动画的方法是什么?如果我要更多地研究它,动画叫什么?它不必是精确的布局,例如,单行 uiview/uiimageview 就足够了。我只需要知道如何/用什么方法来执行这种动画。
问问题
142 次
1 回答
0
使用 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")
}
如果不是复制/粘贴解决方案,希望它能给您一些想法。
于 2020-08-29T10:44:22.387 回答