使用自动布局时,UIImageView没有动画效果

时间:2016-11-06 13:01:44

标签: ios swift uiimageview autolayout

我的图片有以下限制:

  • leading = 0
  • trailing = 0
  • top = 75
  • 身高= 250

我希望我的图像从屏幕右侧开始,然后移动到设置约束的初始位置。

这是我的代码:

imageLeadingConstraint.constant = 100
imageTrailingConstraint.constant = -100
imageTopConstraint.constant = 100
image.layoutIfNeeded()

UIView.animate(withDuration: 1.0) {
    self.imageLeadingConstraint.constant = 0
    self.imageTrailingConstraint.constant = 0
    self.imageTopConstraint.constant = 75
    self.image.layoutIfNeeded()
}

问题是图像移动到初始位置,但没有使用动画 我的代码是对的吗?为什么图像只是出现在新位置而不是动画?

2 个答案:

答案 0 :(得分:3)

您应该为imageView的超级视图调用layoutIfNeeded

self.image.superview.layoutIfNeeded()

答案 1 :(得分:0)

我不确定我是否了解你,但是: 1)在动画块之外更改约束(第二次)。 2)使用self.image.superview?.layoutIfNeeded()代替