如何解决UIView.animate不对一个函数进行动画处理
我有两个为UIView
设置动画的函数。一个用于显示它,另一个用于消除视图。奇怪的是,用于显示视图的动画正在工作,但是用于关闭视图的动画却没有。
show()
。
func show() {
self.viewContainer.frame.origin.y = self.view.frame.height + 500
UIView.animate(withDuration: 0.2,delay: 0,options: .curveEaseOut,animations: {
self.viewContainer.frame.origin.y = self.view.frame.height
},completion: nil)
}
使用dismiss()
或按下按钮调用UITapGestureRecognizer
时。
func dismiss() {
self.overlay.isHidden = true
self.viewContainer.frame.origin.y = self.view.frame.height
UIView.animate(withDuration: 0.2,animations: {
self.viewContainer.frame.origin.y = self.view.frame.height + 500
}) { (_) in
self.view.removeFromSuperview()
}
}
这里似乎是什么问题?
解决方法
您可以尝试
func dismiss() {
UIView.animate(withDuration: 0.2,delay: 0,options: .curveEaseOut,animations: {
self.viewContainer.frame.origin.y = self.view.frame.height + 500
self.overlay.isHidden = true
},completion: nil)
}
,
在dissmis()中删除此代码
self.viewContainer.frame.origin.y = self.view.frame.height
为什么要在show()中这样做?
self.viewContainer.frame.origin.y = self.view.frame.height
如果您想显示在中心位置使用
self.viewContainer.center.y = self.view.center.y
,
通过设置视图底部约束(而不是其框架)的动画来固定它。
var string = "line1<br>line2<br>line3"
string = string..replacingOccurrences(of: "<br>",with: "\n"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。