[英]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.