Swift animateWithDuration()

时间:2015-01-12 14:37:39

标签: ios animation swift

我想在动画中更改imageView&y;并更改标签的文字。但是当我这样做的时候。 ImageView上升100,然后动画从-100到0.但是我想要它下降100。

如果我不更改标签的文字,动画效果会非常好。

    label.text = "test"

    UIView.animateWithDuration(0.5, animations: {

        self.imageView.frame.origin.y += 100

    })

此外,如果我这样做,它只会更改文本并且不会移动imageView。

    label.text = "test"
    imageView.frame.origin.y += 100

1 个答案:

答案 0 :(得分:0)

您正在使用AutoLayout。使用自动布局时,无法直接更改frame

您必须设置约束,然后设置约束中的更改动画以设置视图的动画。

另外,你不能blah.frame.origin.y += 100 IIRC CGrect上的原点是只读的。

你可以......

Blah.frame = CGRectOffset(blah.frame, 0, 100)

但是再一次不能使用自动布局。

修改

原点可以在swift中设置。谢谢jrturton: - )