2014-07-08 170 views
0

我有一個NSCollectionView於一體的.xib和 該集合視圖中的子視圖集合視圖項目在另一個的.xib自動佈局NSCollectionView與子視圖

我試圖約束,以添加到我的收藏查看項目 讓利它

  1. 對齊與上海華的觀點邊緣
  2. 根據上海華
調整本身

第二個.xib中的集合視圖項目是一個帶有約束的NSTableView,如附件中所示。

Constraints configuration

啓動後,我得到以下

  1. SuperView把,即NSCollectionView比其子視圖大。
  2. 如果我調整整個窗口的大小並使其變小,NSCollectionView也會自行調整大小,但子視圖不會。見第二附件。

enter image description here

+1

這些項目通常會將它們的大小提供給集合視圖,然後將它們放在網格中。讓這些項目試圖使自己符合集合視圖提供的大小沒有多大意義。集合視圖將如何挑選大小?也就是說,您可以在集合視圖上設置最小和最大項目大小。 –

+0

我明白了。用NSScrollView可以達到這個目的嗎?我知道NSCollectionView嵌入在NSScrollView – Rabiees

+0

實現什麼?您希望如何確定收集視圖中的項目大小?你可以製作他們想要的任何尺寸。 –

回答

2

NSCollectionView不會做你想要的。這些項目將它們的大小提供給集合視圖,然後將它們放在網格中。

鑑於您試圖實現的相當簡單的單行佈局,您可以使用NSStackView。如果你不想要求10.9或更高版本,你可以通過創建一個普通的NSView作爲你的容器,然後用子視圖填充它來實現堆棧視圖的道德等價物。你會把這個視圖放到滾動視圖中。容器視圖將有約束來保持其頂部和底部等於剪輯視圖。它的寬度不會與剪輯視圖相關。 (我不知道是否希望容器視圖的前沿與剪輯視圖綁定,這可能需要進行一些實驗。)

設置佈局約束以保持子視圖在容器視圖中的排列方式,並保留它足夠寬以容納它們。您需要約束條件來保持與容器視圖頂部相關的子視圖的頂部和底部相似。但是,確保子視圖的高度靈活至少相對於視圖到剪輯視圖約束的優先級。

0

我已經能夠通過設置itemSize等於集合視圖的在FlowLayoutDelegate寬度,同時在視圖控制器來處理調整在viewWillLayout呼籲collectionView.collectionViewLayout?.invalidateLayout()達到什麼你NSCollectionView描述。