我有代码:
@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状态显示它。 一切正常,但我想添加一个移动菜单的动画。
有谁知道怎么做?
答案 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
})