繁体   English   中英

Swift animateWithDuration()

[英]Swift animateWithDuration()

我想在动画中更改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

您正在使用自动版式。 使用自动布局时,不能直接更改frame

您必须设置约束,然后为约束中的变化设置动画,以为视图创建动画。

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

你可以做...

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

但是同样,这不适用于自动布局。

编辑

原点可快速设置。 谢谢jrturton :-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM