gpt4 book ai didi

ios - UITextField 子类的动画位置时文本跳转

转载 作者:技术小花猫 更新时间:2023-10-29 10:35:14 25 4
gpt4 key购买 nike

当我为我的 UITextField 子类的位置设置动画时,字段中的文本与 UITextField 持有它的位置不一致,这非常不和谐我不明白为什么会这样: before during during during end

我的子类在文本字段的右侧添加了一个按钮,当点击该按钮时会调用 View Controller 上的一个方法,该方法会更改文本字段的边框颜色并通过更改顶部空间约束将文本字段向上移动屏幕文本字段,以及位于其上方的其他几个 View 。

[UIView animateWithDuration:0.3
animations:^{
self.tableViewBottomSpaceConstraint.constant = 0;
self.mainLabelHeightConstraint.constant = 0;
self.subLabelTopSpaceConstraint.constant = 0;
self.postCodeFieldTopSpaceConstraint.constant = 12;
[self.view layoutIfNeeded];

}];

最佳答案

我解决了这个问题。将您的代码更改为此。它会起作用。

[UIView animateWithDuration:0.3
animations:^{
self.tableViewBottomSpaceConstraint.constant = 0;
self.mainLabelHeightConstraint.constant = 0;
self.subLabelTopSpaceConstraint.constant = 0;
self.postCodeFieldTopSpaceConstraint.constant = 12;
[self.view layoutSubviews];

}];

或者如果这不起作用则代替

[self.view layoutSubviews];

使用文本字段的父 View 和layoutSubviews。就我而言,这很有效。我认为这个答案有资格获得赏金。谢谢。

编辑:

我找到了原因。当我们尝试 layoutIfNeeded 时,这意味着它首先更改外部布局,然后在更改其布局后更改 UITextField 的内部文本,因为我们没有强制更改该文本字段的所有 subview 的布局。毕竟 UITextField 是由 UIView 和 Label 以及其他基本元素组成的。但是当我们尝试 layoutSubviews 它同时改变所有 subview 的布局时。这就是弹跳消失的原因。

关于ios - UITextField 子类的动画位置时文本跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30572528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com