首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整窗口大小后NSCollectionView的奇怪行为

调整窗口大小后NSCollectionView的奇怪行为
EN

Stack Overflow用户
提问于 2019-03-05 18:29:54
回答 2查看 188关注 0票数 0

下面是我如何设置我的集合视图:

代码语言:javascript
复制
    let layout = NSCollectionViewFlowLayout.init()
    layout.scrollDirection = .vertical
    layout.minimumLineSpacing = 20
    layout.minimumInteritemSpacing = 20
    pCollectionView.collectionViewLayout = layout

    pCollectionView.backgroundColors = [NSColor.clear]
    pCollectionView.dataSource = self
    pCollectionView.delegate = self
    pCollectionView.isSelectable = true

在集合视图的委托中:

代码语言:javascript
复制
    func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize {
        return NSSize(width: 240, height: 135)
    }

乍一看,它看起来不错。

但在我调整了应用程序窗口的大小后,奇怪的事情来了,up.Here是它看起来的样子:

我该如何解决这个问题呢?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-05 19:34:49

过了一段时间,我发现这完全是我的错。

在集合视图的委托方法中,我忘记了使用func makeItem(withIdentifier identifier: NSUserInterfaceItemIdentifier, for indexPath: IndexPath) -> NSCollectionViewItem,而是每次都使用init(nibName: nil, bundle: nil)

我觉得自己太傻了。

票数 0
EN

Stack Overflow用户

发布于 2019-03-05 19:20:49

您必须根据collectionView.frame的大小设置单元格的大小

代码语言:javascript
复制
layout.minimumLineSpacing = 20
layout.minimumInteritemSpacing = 20

不是一个约束,并且不会像您想要的那样保留单元格。

您必须:

代码语言:javascript
复制
extension YourViewController: UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
         //work out the size of cell according to how many you want in a row
         return CGSize(width: screenWidth/3, height: cellHeight)
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55000673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档