ios - layoutIfNeeded 奇怪的动画故障

标签 ios animation autolayout

我正在为 UITextField 的大小调整设置动画。我正在使用带有约束的自动布局。我的 Storyboard 中有 H:|-[textField] -(8)-[label]-(8)-[image]-| 约束。

我将标签设置为飞出屏幕的动画,移除 textField 和标签之间的约束,然后在图像和 textField 之间创建新的约束。 当我为 view.layoutIfNeeded() 设置动画时,textField 内的文本会出现故障并进入 textField 的左上角,然后在其正常位置设置动画。

为什么会发生这种情况,我该如何阻止它?

最佳答案

除了您所说的约束之外,您可能还有未决的布局操作。在更改约束之前尝试调用一次 layoutIfNeeded,然后添加约束并在动画 block 内再次调用 layoutIfNeeded

这将确保只有您打算设置动画的约束更改才会实际设置动画。

关于ios - layoutIfNeeded 奇怪的动画故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29166360/

相关文章:

ios - 以编程方式使用 AutoLayout 将多行 UILabel 的第一行与 UIImage 对齐(Objective-C)

ios - 动态设置 UITableViewCell 高度包裹内容

ios - Retina 4inch 模拟器放错了我应用程序中的所有内容

animation - 在 gnuplot 中制作电影的更快方法

css - 使用 CSS 悬停时动画触发的动画

ios - 手动动画纹理时 SKSpriteNode 拉伸(stretch)

ios - Swift - 向 UITextfield 添加带有间距的底线

ios - 快速设置暗模式属性

ios - 尝试执行方法调用时使用未声明的标识符错误

ios - 有关 API 的信息、核心数据 iOS 设计从头开始