UIView 动画 - 动画正确,但再次出现在同一位置时

乌扎尔·达达

我有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.layoutIfNeededUIView.animate animations封闭。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章