我正在做一些物業督察視圖的國王。我正在使用自定義佈局自動佈局(顯式設置框架屬性)只在外部面板上。讓我解釋一下:可可自動佈局和滾動視圖
- 檢查器屬性視圖的每一行都由一個只使用Autolayout的InspectorPropertyCell實現。
- 有其堆疊的細胞和也使用自動佈局一個StackPanel自定義控件。對於每個組都有一個關聯的堆棧面板。 04組在04組內。兩者都可摺疊。
- 有一個外部堆疊面板可堆疊所有組。這個外部堆棧面板通過使用frame屬性顯式設置高度。
- 這全部包含在NSScrollView中。
看到圖像:
一切工作正常,但如果我調整窗口有其內容區域小,全屬性檢查器視圖(這樣我就可以滾動屬性檢查器視圖) ,然後滾動到底部,然後摺疊最後一個組(組04),屬性檢查器視圖縮小並正確運行。而且,滾動可視區域也相應地被調整。問題是,我不能撤消組04.
的摺疊通過在代碼中設置一些斷點,我發現這個問題是什麼。我只是不知道如何解決它。問題是在調用updateConstraints過程時(因爲我調用了-setNeedsUpdateConstraints),所以不調用-layout過程。即使我通過調用-layoutSubtreeIfNeeded來強制佈局傳遞,自動佈局似乎沒有效果,因爲我設置爲0(使用約束)的某些單元格的高度在進行摺疊時仍然爲0當我崩潰。
如果我調整窗口布局傳球被再次調用。當然,這是不可接受的。
請幫助!我將完全省略自動佈局和僅使用佈局進行自定義佈局...
我喜歡你的檢查員視圖。 :-) –