如何在swift中为整个屏幕上运行的图像制作动画

时间:2018-04-04 15:50:48

标签: swift animation uiview

所以我是swift的新手,我正在尝试制作一款有玩家车和对手车的汽车游戏。对手车将穿过屏幕并重复直到游戏结束。我现在正在实施对手车,但我遇到的问题是对手车的动画只能通过屏幕的一半,直到它们消失并再次开始循环。我如何改变这一点,以便对手的汽车穿过整个屏幕?这是我目前的对手车代码:

  //animation of opponent car1

        UIView.animate(withDuration: 4, delay: 0.0, options: [UIViewAnimationOptions.repeat], animations:
            {

                self.car1image.center.y += self.view.bounds.width



                }, completion: nil
        )


//opponent car2

        UIView.animate(withDuration: 4, delay: 1.0, options: [UIViewAnimationOptions.repeat], animations:
            {

                self.car2image.center.y += self.view.bounds.width


        }, completion: nil
        )

//opponent car3

        UIView.animate(withDuration: 4, delay: 2.0, options: [UIViewAnimationOptions.repeat], animations:
            {

                self.car3image.center.y += self.view.bounds.width


        }, completion: nil
        )

1 个答案:

答案 0 :(得分:1)

您正在将视图宽度添加到y位置。您应该添加视图高度。 (实际上你应该添加屏幕高度,而不是视图高度。)

最好是计算汽车图像视图和屏幕底部之间的距离并添加该数量而不是添加视图/屏幕高度,因为添加全屏高度会使图像变得更好视图会越过屏幕底部,除非它以屏幕顶部的中心开始。