簡體   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