Ios Swift:用动画加载.Xib
目前,我正在从另一个视图上按下的按钮加载CreateAAccount:UIView类的新.Xib 目前,它立即切换到Xib,这是伟大的,但有没有一种方式来动画这一点?下面是按钮中的代码Ios Swift:用动画加载.Xib,ios,swift,animation,xib,Ios,Swift,Animation,Xib,目前,我正在从另一个视图上按下的按钮加载CreateAAccount:UIView类的新.Xib 目前,它立即切换到Xib,这是伟大的,但有没有一种方式来动画这一点?下面是按钮中的代码 @IBAction func createAnAccount(sender: AnyObject) { let createAnAccountView = NSBundle.mainBundle().loadNibNamed("CreateAnAccount", owner: self, opti
@IBAction func createAnAccount(sender: AnyObject) {
let createAnAccountView = NSBundle.mainBundle().loadNibNamed("CreateAnAccount", owner: self, options: nil)[0] as! CreateAnAccount
createAnAccountView.frame = CGRectMake(0, 0, UIScreen.mainScreen().applicationFrame.size.width, UIScreen.mainScreen().applicationFrame.size.height + 20)
createAnAccountView.loginHandler = loginHandler
self.addSubview(createAnAccountView)
println("Create An Account Pressed")
}
你可以这样试试
UIView.transitionWithView(self.view, duration: 0.5, options:UIViewAnimationOptions.CurveEaseInOut,animations: {self.view.addSubview(createAnAccountView)}, completion: nil)
此外,您还可以更改UIViewAnimationOptions以获得所需的效果。Swift 4。只需将动画代码放入
layoutSubviews
func。这对我来说太完美了
override func layoutSubviews() {
super.layoutSubviews()
animate()
}
func animate() {
self.transform = CGAffineTransform(scaleX: 0.3, y: 2)
UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0, options: [.allowUserInteraction, .curveEaseOut], animations: {
self.transform = .identity
})
self.alpha = 1
}
Swift 5@冷记忆答案
func animate() {
self.view.transform = CGAffineTransform(scaleX: 0.3, y: 2)
UIView.animate(withDuration: 1, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0, options: [.allowUserInteraction, .curveEaseOut], animations: {
self.view.transform = .identity
})
self.view.alpha = 1
}
这是在Objective C中,但对您来说是一个很好的开始:要为视图设置动画,iOS中有很多内容,首先需要了解nib需要哪种类型的动画。这似乎仍然不起作用,视图确实会更改,但没有动画。你确定这可以用在.Xib上吗?