Ios 认知量表

Ios 认知量表,ios,swift,calayer,cakeyframeanimation,Ios,Swift,Calayer,Cakeyframeanimation,我不想使用keyframeAnimation调整UIView的大小,因为它必须在向下移动时与标签文本同步设置动画 所以我设置了动画的大小 let sizeAnimation = CAKeyframeAnimation(keyPath: "transform.scale") sizeAnimation.duration = 1.2 let animationTime = TimeInterval(1.2/Float(volumeObjects.co

我不想使用keyframeAnimation调整UIView的大小,因为它必须在向下移动时与标签文本同步设置动画

所以我设置了动画的大小

        let sizeAnimation = CAKeyframeAnimation(keyPath: "transform.scale")
        sizeAnimation.duration = 1.2

        let animationTime = TimeInterval(1.2/Float(volumeObjects.count - 1))
        // Stride is an inverted for in, it goes from volumeObjects count to 0

        var sizeAnimationValuesArray = [NSValue]()
        var keyTimes = [NSNumber]()
        var currentKeyTime: TimeInterval = 0
        for index in stride(from: volumeObjects.count - 1, to: -1, by: -1) {

            let currentPercentage = CGFloat(index)/CGFloat(volumeObjects.count)
            sizeAnimationValuesArray.append(NSValue(caTransform3D: CATransform3DMakeScale(1.0, currentPercentage, 1.0)))
            keyTimes.append(NSNumber(value: currentKeyTime))
            currentKeyTime += animationTime
        }
        sizeAnimation.values = sizeAnimationValuesArray

        self.indicatorView.layer.add(sizeAnimation, forKey: "Bottom")

但由于某些原因,它不起作用,实际上什么都没有发生

您实际上没有使用
keyTimes
数组进行任何操作。使用时间填充它,但未将其指定给动画