首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当点击集合视图单元格时,如何展开和显示标签的完整长度?

当点击集合视图单元格时,如何展开和显示标签的完整长度?
EN

Stack Overflow用户
提问于 2022-06-06 13:24:41
回答 1查看 115关注 0票数 0

在collectionView中有一个单元格格,如果单元格中的标签文本太长而无法显示,那么我已经截断了尾部。现在,当用户长点/按住单元格时,完整长度的文本将显示为UIMenu选项。但是,如果文本太长,它将再次被截断,并显示在UIContextMenu中。怎么解决这个问题?我在collectionView单元格中添加了上下文菜单显示的代码片段。

代码语言:javascript
复制
func collectionView(_ collectionView: UICollectionView, contextMenuConfigurationForItemAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
    
    if collectionView == headerCollectionView {
        let headerText = headers[indexPath.row].label
        return configureContextMenu(text: headerText)
    }
    
    else if collectionView == collectionView {
        var data: [String] = []
        dataOrganiser.getDataForSection(section: sections[indexPath.section], dataArray: &data)
        return configureContextMenu(text: data[indexPath.item])
    }
    return configureContextMenu(text: "")
}


func configureContextMenu(text: String) -> UIContextMenuConfiguration {
    
    let context = UIContextMenuConfiguration(identifier: nil, previewProvider: nil) { (action) -> UIMenu? in
        
        let edit = UIAction(title: text, identifier: nil, discoverabilityTitle: nil, state: .off) { _ in }
        
        return UIMenu(title: "", image: nil, identifier: nil, options: UIMenu.Options.destructive, children: [edit])
    }
    return context
}
EN

回答 1

Stack Overflow用户

发布于 2022-06-06 19:09:01

我需要更多的信息来回答你的问题。可能还有一些代码。

但是,假设向单元格中添加了长按压手势,您可能希望调用一个更改单元格上的numberOfLines属性的函数。假设您使用的是UICollectionViewDiffableDataSource<Section, Item>,您需要更新item (您的单元格和item之间应该有一些通信),这样数据源就会看到item (它是可理解的)已经改变了。然后,它显示更改。

有些人采用另一种方法,他们只创建两个单元格,其中一个只显示一行,另一个将numberOfLines设置为零。然后,视图控制器(如果您遵循MVC,或者视图模型,如果您遵循MVVM),在这两个单元格之间切换。

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

https://stackoverflow.com/questions/72518373

复制
相关文章

相似问题

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