我有UIView
两个UITextField
都在一个视图中。我首先UIView
从左到右动画,第二个视图在拖尾。所以看起来第一个视图消失了,第二个视图进入了进一步的工作。这工作得很好,但是当我点击 second 的UIView
文本字段时,拳头UIView
又回到了屏幕上。代码如下
UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseInOut, animations: {
var resendViewNewFrame = self.resendView.frame
resendViewNewFrame.origin.x -= resendViewNewFrame.size.width
var confirmViewNewFrame = self.confirmView.frame
confirmViewNewFrame.origin.x = 0
self.resendView.frame = resendViewNewFrame
self.confirmView.frame = confirmViewNewFrame
self.mobileNumberTextField.resignFirstResponder()
}, completion: nil)
我怎样才能确保第一个屏幕不会再次出现在屏幕上。基本上动画后第一个视图的 X 位置变为屏幕的宽度。
这是因为您在第一次配置视图时使用了约束。然后,您正在更改/动画视图的框架。如果您不会再次布局视图,这将起作用。但可能它的作用是,它以某种方式自行布局视图。因此,它可以在第一时间将视图带到受限的地方。
您可以做的是,在函数调用之前更改约束UIView.animate
。并做self.layoutIfNeeded
内UIView.animate animations
封闭。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句