我在視圖控制器上有兩個按鈕。它們的高度和寬度相等,間隔很好,以屏幕爲中心。 問題是,在某些情況下,其中一個按鈕被隱藏。 當其中一個按鈕被隱藏時,我想讓另一個按鈕居中。當其他人隱藏一個按鈕時的約束條件
對於我的生活,我一直無法弄清楚如何配置約束來實現這一點。
我能夠移動可見按鈕,使其中心,如果其他按鈕被隱藏,但似乎只能在視圖加載後做到這一點,這使得按鈕「跳躍」,看起來很愚蠢。
我在視圖控制器上有兩個按鈕。它們的高度和寬度相等,間隔很好,以屏幕爲中心。 問題是,在某些情況下,其中一個按鈕被隱藏。 當其中一個按鈕被隱藏時,我想讓另一個按鈕居中。當其他人隱藏一個按鈕時的約束條件
對於我的生活,我一直無法弄清楚如何配置約束來實現這一點。
我能夠移動可見按鈕,使其中心,如果其他按鈕被隱藏,但似乎只能在視圖加載後做到這一點,這使得按鈕「跳躍」,看起來很愚蠢。
非常感謝。這不僅完全解決了我的問題,而且讓我(最終)學會了UIStackView的WTH。 –
只適用於iOS 9+。 – bagage
如果您能夠將按鈕放在正確的位置,請嘗試使用動畫來給它帶來不錯的效果。請注意,這隻會激活約束條件的變化,所以如果您正在做其他事情來使按鈕移動,它可能無法正常工作。
UIView.animate(withDuration: 0.5, animations: {
//do whatever you're doing to make the button 'jump' to the right position here
self.view.layoutIfNeeded()
})
使用這種方法,您需要以編程方式重置所有約束。否則,您設置的新位置將被layoutIfneeded覆蓋,這會將對象移回到由其約束定義的位置。 說實話,這是更正確的做事方式。但有點難做。 –
這樣的故事板約束並不意味着移動,並且由於沒有正確執行此操作而導致很多UI問題。
我的建議?這並不理想,但只需添加第三個按鈕即可。如果必須隱藏一個按鈕,只需隱藏兩個按鈕,然後顯示第三個按鈕。
您可能能夠實現通過使用'UIStackView'這種效果。將這兩個按鈕添加到堆棧視圖並居中堆棧視圖。 – daltonclaybrook