簡體   English   中英

自動調整 NSCollectionViewItem 的大小以適應屏幕

[英]Auto resize NSCollectionViewItem to fit screen

我正在嘗試創建一個 NSCollectionView,它的項目適應可用空間,而不是為項目定義固定大小並相應地調整 NSCollectionView 的大小。

我無法找到使用 NSCollectionViewFlowLayout 實現這一目標的方法,因為它需要固定大小的項目。 我非常接近 NSCollectionViewGridLayout 的預期結果。 但是,在縮放包含 NSCollectionView 的窗口時,我需要 CollectionViewItems 來保持它們的縱橫比(正方形),而 GridLayout 則根據它們的 min 和 maxItemSize 相應地縮放項目。 根據窗口大小和集合中的項目數量,我最終得到的項目不完全是正方形。

示例截圖:扭曲的 NSCollectionViewItems

我可能可以通過在網格中設置 maximumNumberOfColumns 來解決這個問題,具體取決於集合中的項目數和窗口大小,但這似乎有點麻煩。 有沒有更好的方法來實現所需的布局? 也許使用自定義 NSCollectionViewLayout?

您需要在控制器中實現以下協議:

NSCollectionViewDelegateFlowLayout

它有很多方法允許微調項目(大小/位置/邊距)。 不要忘記將您的集合視圖布局設置為“流”(在 IB 中)。

尋找實現以下方法:

func collectionView(collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, insetForSectionAtIndex section: Int) -> NSEdgeInsets {

   ...

}

func collectionView(collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> NSSize {

   ...
}

func collectionView(collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM