2012-12-05 85 views
4

我正在做一些物業督察視圖的國王。我正在使用自定義佈局自動佈局(顯式設置框架屬性)只在外部面板上。讓我解釋一下:可可自動佈局和滾動視圖

  • 檢查器屬性視圖的每一行都由一個只使用Autolayout的InspectorPropertyCell實現。
  • 有其堆疊的細胞和也使用自動佈局一個StackPanel自定義控件。對於每個組都有一個關聯的堆棧面板。 04組在04組內。兩者都可摺疊。
  • 有一個外部堆疊面板可堆疊所有組。這個外部堆棧面板通過使用frame屬性顯式設置高度。
  • 這全部包含在NSScrollView中。

看到圖像:

enter image description here

一切工作正常,但如果我調整窗口有其內容區域小,全屬性檢查器視圖(這樣我就可以滾動屬性檢查器視圖) ,然後滾動到底部,然後摺疊最後一個組(組04),屬性檢查器視圖縮小並正確運行。而且,滾動可視區域也相應地被調整。問題是,我不能撤消組04.

的摺疊通過在代碼中設置一些斷點,我發現這個問題是什麼。我只是不知道如何解決它。問題是在調用updateConstraints過程時(因爲我調用了-setNeedsUpdateConstraints),所以不調用-layout過程。即使我通過調用-layoutSubtreeIfNeeded來強制佈局傳遞,自動佈局似乎沒有效果,因爲我設置爲0(使用約束)的某些單元格的高度在進行摺疊時仍然爲0當我崩潰。

如果我調整窗口布局傳球被再次調用。當然,這是不可接受的。

請幫助!我將完全省略自動佈局和僅使用佈局進行自定義佈局...

+0

我喜歡你的檢查員視圖。 :-) –

回答

0

我通過在子視圖調用佈局解決了明確......這是一個有點古怪......但我需要我的佈局前我的孩子layouted我自己(StackPanel)。