我有一个函数用于动画改变视图的Y轴位置。我通过两种方式调用它:第一种是作为按钮的操作目标,第二种是通过观察通知来调用。在第一种情况下,它可以正常工作,但是当通过通知调用时,它不能进行动画处理。该函数的代码如下:
func showResult() {
resultMode = true
self.containerView.frame.origin.y = CGFloat(1000)
self.view.layoutIfNeeded()
UIView.animate(
withDuration: 3,
animations: {
self.containerView.frame.origin.y = CGFloat(200)
self.view.layoutIfNeeded()
} ,
completion: nil
)
}
这被称为:
NotificationCenter.default.addObserver(self, selector: #selector(self.showResult), name: NSNotification.Name(rawValue: "SHOWRESULT"), object: nil)
并且。
resultBtn.addTarget(self, action: #selector(self.showResult), for: .touchUpInside)
Notification
调用了showResult
,请在主线程中执行。 - Pratik Prajapati