【问题标题】:NSCollectionView or NSTableView automatic height adjustment of cellsNSCollectionView 或 NSTableView 自动调整单元格高度
【发布时间】:2016-09-26 16:05:53
【问题描述】:

在 iOS 中你可以使用:

self.tableView.rowHeight = UITableViewAutomaticDimension

实现cell的自动高度调整。

有没有办法在 macOS 中使用NSCollectionViewNSTableView 实现此行为?

【问题讨论】:

    标签: macos nstableview appkit nscollectionview


    【解决方案1】:

    谈到 NSTableView... 在 El Capitan 中,没有简单的方法可以做到这一点。不确定新的 Sierra SDK。

    根据我的经验,调节表格行高最可靠的方法是使用 NSTableViewDelegate 方法:

     func tableView(tableView: NSTableView, heightOfRow row: Int) -> CGFloat {
    
        //Here you do some magic measuring actual content of the cell and returning heigh
    }
    

    唯一的好处是一些控件有:fittingSize属性,可以简化流程。

    此外,动态内容更改将要求您调用表格视图的noteHeightOfRowsWithIndexesChanged 方法,以导致再次调用该委托方法,您的代码将重新计算新高度。

    【讨论】:

      【解决方案2】:

      ma​​cOS 11及更新版本,情况如下:

      NSTableView现在实际上可以使用自动布局来实现单元格的自动高度调整。您必须正确配置单元格模板以使用自动布局,并且您必须指示表格使用自动布局(也可以在故事板中完成)进行行高计算:

      tableView.usesAutomaticRowHeights = true
      

      NSCollectionView 目前 (2021) 在功能上仍落后于 iOS 对应版本,并且仍然不支持任何 tableview 功能,例如自动行高。

      【讨论】:

        猜你喜欢
        • 2012-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多