0
A
回答
1
約束是「視圖的一部分」。當你刪除一個視圖(使用removeFromSuperview
)時,他們會保留這個視圖,只要視圖本身沒有被釋放。然後,您可以再次安全地添加視圖,並且約束將處理定位。
將其與視圖的框架進行比較:即使從超級視圖中刪除視圖,框架也會保持不變。當您將視圖添加爲子視圖時,它將處於與之前完全相同的位置。
所以,要回答你的問題:當你用另一個視圖「交換」視圖時,新視圖不會有任何約束。這是行不通的:
[newView addConstraints:[oldView constraints]];
這將導致「視圖沒有層次」的錯誤,因爲約束綁oldView
。
相關問題
- 1. Autolay iOS與單uiviewcontroller和多視圖
- 2. 使用Autolay約束在父視圖中居中視圖
- 3. 交換android視圖
- 4. iPhone dev視圖交換
- 5. 使用NSTreeView交換視圖
- 6. 交換ListView項目視圖
- 7. 交換視圖的模型?
- 8. 交換視圖動畫
- 9. 視圖交換技術
- 10. UITableviewcell中的Autolay問題其中有Uitableview作爲子視圖
- 11. Autolay編程
- 12. Autolay約束左
- 13. 交換tabview控制器內的視圖
- 14. 如何交換MAAttachedWindow的視圖
- 15. 兩個視圖的交換位置
- 16. 在窗口中交換視圖
- 17. 仍然難以正常交換視圖
- 18. 交換根視圖控制器
- 19. 轉換交叉表查詢到視圖
- 20. 滾動視圖,按鈕事件交換
- 21. UIView動畫交換視圖(滑下)
- 22. 如何在angularJS中交換視圖?
- 23. Android:交換兩個重疊視圖
- 24. backbone.js - 解除綁定和交換視圖
- 25. Android:交換2個視圖的位置
- 26. 交換視圖 - NSWindowController和NSViewController(s)
- 27. Programatic Autolay UI元素
- 28. 在容器視圖中交換子視圖
- 29. 交換圖像
- 30. Autolay在界面生成器
因此,我們不應該嘗試從視圖「複製」約束到替換視圖...?我仍然試圖饒恕一個約束包含的東西。我懷疑這個API最終會變得更好。但是,如果我理解正確,一個約束與一個或兩個視圖對象的關係緊密結合。 – uchuugaka
沒有運氣,你說的加回來和框架是一樣的。事實上,我得到一個零框架。 – uchuugaka
所以實際上,當我重新添加子視圖時,它不會出現。我一定做錯了什麼。 – uchuugaka