-1

我有一个动画,它在 UI 中删除一个圆圈,然后在其他地方重新创建它,但是当我重新创建它时,它比我想要的要小。我无法弄清楚为什么它看起来更小。

        let viewsToAnimate = [circleFrame]

        UIView.perform(UISystemAnimation.delete, on: viewsToAnimate, options: [], animations: {

            }, completion: { finished in
                self.circle.removeFromSuperlayer()
                self.circleFrame.removeFromSuperview()
                self.circleFrame.layer.removeAllAnimations()
                self.createCircle()
                self.score = self.score + 1

                self.scoreLabel.text = "Taps: " + String(self.score)
                self.tapsLabel.text = "Taps: " + String(self.initialTaps + self.score)
        })



func createCircle() {
    let randomX = generateRandomX()
    let randomY = generateRandomY()

    circleCenter = generateCircleCenter(x: randomX, y: randomY)

    circleFrame.frame = CGRect(x: randomX, y: randomY, width: 100, height: 100)
    circleFrame.alpha = 1.0

    self.view.addSubview(circleFrame)

    circle.path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: 100, height: 100), cornerRadius: 50).cgPath
    circle.fillColor = UIColor(red: 0, green: greenValue/255, blue: 0.6, alpha: 1.0).cgColor
    circle.strokeColor = UIColor(red: 1, green: greenValue/255, blue: 0, alpha: 1.0).cgColor
    circle.lineWidth = 0

    circleFrame.layer.addSublayer(circle)
}

我已经尝试删除所有动画,但它总是显得更小。关于为什么会发生这种情况的任何帮助都会很棒。

这是它第一次createCircle()调用时的样子。

在此处输入图像描述

这是从动画中调用它时的样子。

在此处输入图像描述

4

1 回答 1

0

我认为将 removedOnCompletion 设置为 true 就足够了,因此 CAAnimation 将重置为原始大小。试一下 !:)

于 2016-08-24T16:20:47.633 回答