在将此动画连接到我的ViewController并从ViewDidAppear调用后将此动画应用于UIView,UIButton或UILabel时,它可以正常工作:
UIView.transition(with: self.myButton, duration: 5, options: .transitionFlipFromRight, animations: nil, completion: nil)
然而,问题是,当我在继承自UIView的自定义类中输入该动画时,将其设置为我的故事板中的该对象,并传递" self"进入"用:"参数,并把它放在AwakeFromNib上,它不起作用:
class myAnimatedView: UIView {
override func awakeFromNib() {
self.layoutIfNeeded()
UIView.transition(with: self, duration: 15, options: .transitionFlipFromRight, animations: nil, completion: nil)}
}
}
我在AwakeFromNib上应用的其他动画在这样的子类上工作正常 - 例如,这很好用:
UIView.animate(withDuration: 5.0, delay: 0.5, usingSpringWithDamping: 0.2, initialSpringVelocity: 5.0, options: UIViewAnimationOptions(rawValue: UInt(0)), animations:({//my animations here}))
我做错了什么?使用Xcode 9.1,Swift 4.非常感谢
答案 0 :(得分:1)
我认为您的代码/架构存在一些问题:
你说要添加这个
UIView.animate(withDuration: 5.0, delay: 0.5, usingSpringWithDamping: 0.2, initialSpringVelocity: 5.0, options: UIViewAnimationOptions(rawValue: UInt(0)), animations:({//my animations here}))
你的awakeFromNib中的很好,但是我注意到延迟为0.5,所以视图已经准备就绪并且在动画启动时被唤醒了
最终你可能会使用didMoveToWindow()来自动设置你的东西 https://developer.apple.com/documentation/uikit/uiview/1622527-didmovetowindow