Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 卡巴斯基化不会顺利结束_Ios_Swift_Uiview_Core Animation - Fatal编程技术网

Ios 卡巴斯基化不会顺利结束

Ios 卡巴斯基化不会顺利结束,ios,swift,uiview,core-animation,Ios,Swift,Uiview,Core Animation,我为UIView提供了以下扩展来执行buzz动画 动画工作正常,尽管结尾不平滑。对于最终的动画计数,UIView进入center.x-40,然后粗暴地返回center.x 我无法让它以流畅的方式结束。我怎样才能做到这一点 extension UIView { func buzz() { let animation = CABasicAnimation(keyPath: "position") animation.duration = 0.4

我为UIView提供了以下扩展来执行buzz动画

动画工作正常,尽管结尾不平滑。对于最终的动画计数,UIView进入
center.x-40
,然后粗暴地返回
center.x

我无法让它以流畅的方式结束。我怎样才能做到这一点

extension UIView {
    func buzz() {
        let animation = CABasicAnimation(keyPath: "position")

        animation.duration = 0.4
        animation.repeatCount = 2
        animation.autoreverses = true
        animation.fromValue = NSValue(cgPoint: CGPoint(x: self.center.x - 40.0, y: self.center.y))
        animation.toValue = NSValue(cgPoint: CGPoint(x: self.center.x + 40.0, y: self.center.y))
        animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)

        layer.add(animation, forKey: "position")
    }
}

在制作动画之前,需要将层的位置设置为动画完成后的位置。这是因为动画在一个不同的层上单独运行,当它完成时就消失了。

得到了这个想法,但是你可以通过提供一个样本代码来增加它。在打开括号之后或者在空白线之后添加这条线,让动画……:Leal.Posie= CGPoT(x:So.Center。x+ 40,y:io.Center,y)这行代码使它只向一个方向移动(嗡嗡声效果消失),一旦完成,视图将超出范围40。根据您刚才添加的动画图片,在我看来,您有多个动画正在进行。我认为这一个是固定的,但你可能会有另一个(可能就在这被称为…)这是可能的吗?在右上角闪烁的东西是什么?