我有一个带有以下参数的NSCollectionView:
自定义NSCollectionViewItem
WebView
以显示html网页
extension ViewController : NSCollectionViewDataSource {
func numberOfSections(in collectionView: NSCollectionView) -> Int {
return 5
}
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
return 1
}
func collectionView(_ itemForRepresentedObjectAtcollectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = htmlNotificationsCollectionView.makeItem(withIdentifier: "htmlNotificationCollectionViewItem", for: indexPath)
return item
}
}
我的代码正在运行,但它只显示一个项目!并忽略numberOfSections
以垂直显示
如果我将numberOfItemsInSection
更改为3,则显示3个项目,但水平显示。
我需要这样的布局:
答案 0 :(得分:0)
您应该以编程方式设置maximumNumberOfColumns:
let layout = NSCollectionViewGridLayout()
layout.maximumNumberOfColumns = 1
collectionView.collectionViewLayout = layout
(由于某些原因,当您在情节提要板上设置Grid属性时,它不起作用)
答案 1 :(得分:0)
NSCollectionViewGridLayout是单节布局。根据Apple文档,这意味着布局只能容纳一个部分。
一种布局,在行和列网格中显示单个部分的项目。
这就是为什么您没有获得更多内容的原因。
将其更改为NSCollectionViewFlowLayout以获取多个部分。希望对您有所帮助。