ios - 是否可以为 UIEdgeInsets 设置动画?

标签 ios swift animation uitextfield uiviewanimationtransition

我一直在尝试为 UIEdgeInsets 中的变化设置动画.我已经尝试使用 UIView.animateWithDuration并且插图只是跳到最终值。有谁知道这是否是一个不能动画的属性?或者更好的是,有没有人知道制作插图动画的方法?

举个例子:

// Starting inset values
self.searchField.placeHolderInset = UIEdgeInsets(top: 0, left: 110, bottom: 0, right: 10)

// Animation block
UIView.animateWithDuration(0.1, animations: {
        self.searchField.placeHolderInset = UIEdgeInsets(top: 0, left: 18, bottom: 0, right: 10)
})

文本不会在 0.1 秒内向左移动 92 像素,而是跳转到最终值。 searchFieldUITextField.placeHolderInset是用于确定 UITextField 的插图的 UIEdgeInset的占位符文本。

编辑:另一种达到预期效果的方法是更改​​ UITextField.textAlignment来自 .Center.Left但这也不会动画。

最佳答案

您需要在动画 block 内部的 View 上调用 layoutIfNeeded()

关于ios - 是否可以为 UIEdgeInsets 设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30136973/

相关文章:

ios - 在动画中移动时如何允许触摸 UIButton?

ios - 无限滚动和重复数据

arrays - 从模型 Swift 3 中的数组调用项目

objective-c - Swift 中的 C 结构表示

ios - 异步加载图像到自定义 UITableViewCell 部分工作

css - 使用 Transition 在 Vuejs 中的 v-if 上设置动画高度

ios - 检测 tableView reloadData 完成的新解决方案?

html - 无法在最后卡住 css 动画

CSS3动画停留在结束状态3秒

ios - 如何在 iOS 的状态栏下方添加/显示工具栏?