首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使NSCollectionView项具有基于文本字段动态高度

如何使NSCollectionView项具有基于文本字段动态高度
EN

Stack Overflow用户
提问于 2017-09-07 19:20:06
回答 1查看 1.6K关注 0票数 0

我有一个NSCollectionView,它以列表的形式显示项目。

我的布局由

代码语言:javascript
复制
private func configureCollectionView() {
    let flowLayout = NSCollectionViewFlowLayout()

    flowLayout.itemSize.width = self.view.frame.width
    //flowLayout.itemSize.height = 50
    flowLayout.minimumLineSpacing = 8
    myCollectionView.collectionViewLayout = flowLayout
    view.wantsLayer = true
}

当一个长长的文本作为一个项目输入时,我试图获得项目的高度,让这个“单元格”随着文本的内容增长/扩展。我已经使用AutoLayout设置了我的contsraints,并且我相当确定它的设置是正确的,但是我的物品高度仍然固定在50 (我不知道它设置在哪里)。

我在试着利用

代码语言:javascript
复制
func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize 

但我也不太幸运,因为我不知道如何最好地计算出尺寸应该是多少(在这种情况下是高度)。

对这个问题有什么建议吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-11-08 04:20:39

您可以使用具有所需宽度和足够高的sizeThatFits

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

    let string = strings[indexPath.item]
    let size = NSTextField(labelWithString: string).sizeThatFits(NSSize(width: 400, height: 800))

    return NSSize(width: 400, height: size.height > 80 ? size.height : 80)
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46095047

复制
相关文章

相似问题

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