我想用我的視圖執行基於交互式手勢的動畫,需要將屏幕中心的視圖移動到屏幕的左上角。我似乎無法插入兩個不同x/y約束的位置(只改變常量)之間插入,所以作爲替代方案,我想也許我可以在故事板中佈置視圖,然後通過直接更改框架來製作動畫。有沒有一個好的方法來做到這一點,或者這是一個壞主意?我可以在故事板中使用自動佈局來放置我的視圖,然後禁用約束?
1
A
回答
1
你不需要刪除他們!只要停用它們就足夠了。
如果你看過文檔,你應該知道UIView
的constraints
屬性返回它作爲[NSLayoutConstraint]
的約束條件。你只需要遍歷這個數組並停用所有約束!
for constraint in someView.constraints {
constraint.active = false
}
或者使用forEach
:
someView.constraints.forEach { $0.active = false }
停用的約束,而不是刪除它們,你可以再次激活它們很容易,當你需要它的優勢。
0
如果我是你,我會選擇動畫約束。即使由於某種原因無法更改約束常數,仍然可以刪除以前的約束並添加一個新的約束。 要做到這一點,您需要:
- 保持到要更改
- 從視圖
- 設置新的限制去掉,將其添加到視圖約束參考
- 保持這種新的約束
動畫的參考用:
UIView.animateWithDuration(0.5){ self.view.layoutIfNeeded () }
相關問題
- 1. 故事板禁用我的視圖
- 2. iOS故事板佈局 - 約束查詢
- 3. 的Xcode 6.3故事板自動佈局約束
- 4. 更改故事板中的超視圖後保持自動佈局約束條件
- 5. iOS:使用故事板中的自動佈局進行圖像縮放
- 6. 不使用自動佈局的約束?
- 7. 使用故事板中的自動佈局更改橫向視圖框架
- 8. 我可以在運行時禁用特定子視圖的自動佈局嗎?
- 9. 以編程方式禁用自動佈局約束
- 10. 自動佈局約束不受重視
- 11. 我可以使用故事板在UIViewController中嵌入UINavigationController的視圖嗎?
- 12. 在約束層佈局中的另一個視圖下放置視圖
- 13. 什麼時候自動佈局約束被應用於視圖?
- 14. 在視圖出現後應用iOS 8/XCode 6自動佈局約束
- 15. ios6自動佈局約束
- 16. iOS自動佈局約束
- 17. 無法在故事板中啓用自動佈局
- 18. 移動視圖與佈局約束
- 19. 無法使用約束中心故事板上的兩個視圖中心 - iOS
- 20. 故事板標籤約束
- 21. 自動佈局約束不起作用
- 22. NEWBIE可以使用我自己的SFSafariViewController並預加載一個url。然後在故事板上使用它
- 23. 如何啓用自動佈局在故事板的Xcode 8
- 24. 如果我使用故事板中的「添加缺失約束」選項來分配故事板中的約束,該怎麼辦?
- 25. 我可以在android約束佈局中使用多少條指南?
- 26. 無法通過故事板中的自動佈局設置UItableView的tableHeaderView高度約束
- 27. 故事板:當我更改佈局約束時,如何讓Xcode自動更新框架?
- 28. 可可自動佈局約束 - 可變數量的視圖的編程填充
- 29. XCode 6中對故事板和xib的自動約束?
- 30. 故事板視圖在iPhone 5/6中看起來不一樣 - 約束條件
這是forEach語句的工作原理嗎? $ 0是什麼意思? – GoldenJoe
@GoldenJoe這是編寫'for in'循環的另一種方式。看到我在'for in'循環中聲明的變量'constraint'? 'forEach'閉包中的'$ 0'具有大致相同的含義。如果你覺得這對你來說太過於實用,那就堅持'for in'循環。 – Sweeper
@GoldenJoe它適合你嗎?如果確實如此,請考慮接受答案。 – Sweeper