2015-07-11 45 views
3

想象一下您已經爲您的故事板中的幾個尺寸類別制定了一個UIViewNSLayoutConstraint的場景,該場景的constant s不同。現在您想通過修改該約束的constant來動畫顯示該視圖的位置。假設您想要將其從-100設置爲其在當前尺寸類的故事板中設置的原始值。你怎麼能夠在動畫代碼中使用這個值?將故事板中的NSLayoutConstraint常量重置爲其原始值

這樣你就不需要在代碼中檢測大小類,並用與已經在故事板中設置的值一致的值以編程方式設置它。

+0

你有沒有想出任何解決方案呢? –

+0

@MichaelJohnston我沒有 – Joey

回答

1

將您的佈局約束連接到Interface Builder中的插座。然後,當你的視圖被加載時,緩存值爲constraint.constant在伊娃。然後,您可以更改它並根據需要重置它。

+0

如果你沒有改變不同大小的'常數'值,但是,如果對於任何你設置爲20的任何和任何緊湊型h 10,那麼用戶在iPhone上以縱向方式啓動應用,然後旋轉到橫向?緩存的值現在不正確,您會將視圖放置在當前大小類的錯誤位置。 – Joey

+0

您可以在方向更改時重新緩存該值。 –

+0

這就是我試圖阻止的事情。該值已在故事板中定義,我不想爲每個尺寸類別的每個約束重新定義每個值,並且風險不一致。此外,請注意,尺寸類別可以更改而不發生旋轉。 – Joey

1

1)當你想動畫限制變化constraint.constant值要設置

3的值)在你的動畫塊爲您在條件約束

2)創建一個出口調用view.layoutIfNeeded()

相關問題