是否可以为 UIEdgeInsets 设置动画?

Is it possible to animate UIEdgeInsets?

我一直在尝试为 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 但那也不会动画。

您需要在动画块内部的视图上调用 layoutIfNeeded()