我有一個自動佈局的包含視圖控制器的視圖的筆尖,另外還有一個帶有佔位符視圖的窗口將它添加進去。佔位符相對於其超視圖和窗口中的其他視圖具有約束,並且在涉及我的視圖控制器之前,佔位符以我想要的方式調整窗口大小。稍後我加載nib並將其頂層視圖作爲佔位符的子視圖添加,並且我還手動創建約束以使其與佔位符的邊緣保持一致。Autolayout正在調整我的窗口大小
一切都很好,我在我的應用程序中的幾個實例中使用了這種模式,但在某些情況下,添加視圖後,我的窗口被調整大小!縮小到添加視圖的最小尺寸,而不是視圖擴展到當前窗口的大小。
到目前爲止,我發現阻止這種情況的唯一方法是,添加視圖並創建其約束時,還要設置視圖的框架,使其爲佔位符和窗口當前狀態的初始大小。這在某些時候可以,但我希望能夠定義更復雜的約束條件,只需將每條邊對齊到佔位符超級視圖即可。我不想爲每種情況編碼幀算術。
有誰知道發生了什麼事?如果窗口已經規定了佔位符的大小,而不是相反,那麼在添加子視圖以使當前窗口大小仍然優先時,我必須做些什麼?
我看過Xcode IB窗口中的彈出式菜單,它似乎是關於隻影響子視圖和超級視圖(爲所有筆尖設置前者)的約束,與此功能相關的是什麼?我還沒有發現任何其他事情。
編程設置你就不能設置自定義視圖(佔位符)的寬度限制? – codingFriend1
編輯我的帖子,使這更清晰,我希望。在調整窗口大小時,我的佔位符已經有了一些約束條件,使它具有正確的行爲。在添加子視圖時添加固定大小的約束將會破壞它。 –
如果你的約束是正確的,那麼窗口調整大小將工作。 –