如何在移动视图中添加动画?

时间:2018-06-13 11:16:33

标签: ios swift

我有代码:

@IBOutlet weak var rightMenuViev: UIView!
var rightMenuVisible = false

func showAndHideRightMenu(){
        if rightMenuVisible == false{
            var rightMenu = rightMenuViev.frame
            rightMenu.origin.x = rightMenu.origin.x + 155
            rightMenuViev.frame = rightMenu

            rightMenuVisible = true
        } else{
            var rightMenu = rightMenuViev.frame
            rightMenu.origin.x = rightMenu.origin.x - 155
            rightMenuViev.frame = rightMenu

            rightMenuVisible = false
        }
    }

上面的代码应该隐藏侧边菜单并根据rightMenuVisible状态显示它。 一切正常,但我想添加一个移动菜单的动画。

有谁知道怎么做?

2 个答案:

答案 0 :(得分:0)

对于动画,您可以使用UIView.animate...方法。

func showAndHideRightMenu() {

    if rightMenuVisible == false{
        UIView.animate(withDuration: 0.4, delay: 0, options: .curveEaseInOut, animations: {

            var rightMenu = rightMenuViev.frame
            rightMenu.origin.x = rightMenu.origin.x + 155
            rightMenuViev.frame = rightMenu

            rightMenuVisible = true

        }) { (isCompleted) in
            //code after animation completion
        }

    } else{
        UIView.animate(withDuration: 0.4, delay: 0, options: .curveEaseInOut, animations: {
            var rightMenu = rightMenuViev.frame
            rightMenu.origin.x = rightMenu.origin.x - 155
            rightMenuViev.frame = rightMenu

            rightMenuVisible = false

        }) { (isCompleted) in
            //code after animation completion
        }
    }
}

答案 1 :(得分:0)

let originalTransform = self.main.transform
let scaledTransform = originalTransform.scaledBy(x: 0.2, y: 0.2)
let scaledAndTranslatedTransform = scaledTransform.translatedBy(x: 0.0, y: -250.0)
UIView.animate(withDuration: 0.7, animations: {
    self.main.transform = scaledAndTranslatedTransform
})