如何选择并突出显示 UICollectionView,如 UITableViewCell?

Posted

技术标签:

【中文标题】如何选择并突出显示 UICollectionView,如 UITableViewCell?【英文标题】:How do I select and highlight a UICollectionView like a UITableViewCell? 【发布时间】:2016-01-18 12:07:03 【问题描述】:

我有一个简单的难题。我的应用程序中有一个 UICollectionViewController 显示已保存的测验。我有加载权,但我希望它移动检测其中一个上的点击,然后执行逻辑将其加载到主 VC 中。我希望选择类似于 UITableViewCell ,它会突出显示它一秒钟然后取消突出显示它。如果有帮助,我正在使用子类 UICollectionViewCell。

【问题讨论】:

【参考方案1】:

为了突出显示,您可以像这样子类化您的单元格:

import UIKit

class CustomCell: UICollectionViewCell 

    override func awakeFromNib() 
        super.awakeFromNib()

        let backgroundView = UIView(frame: CGRectZero)

        backgroundView.backgroundColor = UIColor.blueColor()

        self.selectedBackgroundView = backgroundView
    

来自the docs 为UICollectionViewCell

您可以使用此视图为单元格提供自定义外观 选择。当单元格被选中时,这个视图在 backgroundView 和 contentView 后面。

【讨论】:

谢谢!我想知道那些出口是什么。并感谢您提供代码示例。 我的原始答案中有一个错误(将UIColor 值分配给UIView 属性)。有人提出了正确的解决方法,但似乎被拒绝了。我已经编辑了答案来修复它。 这个答案在面向 ios 14.0 的 Big Sur 11.1 上的 Xcode 12.2 中似乎不再适用。我得到“实例成员 'selectedBackgroundView' 不能用于类型 'My_CollectionViewCell'”。【参考方案2】:

UICollectionViewCell 有一个属性

@property(nonatomic, getter=isHighlighted) BOOL highlighted;

您可以使用此属性在 cellForItemAtIndexPath 中选择 UICollectionViewCell:

【讨论】:

我该怎么做呢?我是 UICollectionViews 的新手,尝试了 10 次以使单元格正常工作 你能告诉我你突出显示单元格的标准是什么(用户选择的项目?)。所以我可以更详细地发布答案。 就像选择一个(默认)uitableviewcell一样。它会变成蓝色片刻,然后变得正常。同样选择类似于按钮的按钮也很酷。 (你知道,用阴影颜色和东西)【参考方案3】:

与 UITableView 不同,在 UICollectionView 中没有定义特定的方法来执行此操作。您需要通过立即更改特定单元格的背景颜色或背景图像以编程方式实现它。 你可以参考苹果文档。https://developer.apple.com/library/ios/documentation/UIKit/Reference/UICollectionView_class/ 希望对您有所帮助。

*****已编辑***** 你也可以参考这个。。 Why UICollectionView's UICollectionViewCell is not highlighting on user touch? 快乐编码.. :)

【讨论】:

以上是关于如何选择并突出显示 UICollectionView,如 UITableViewCell?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QTreeWidget 的子项设置为在单击其父项时自动选择并突出显示

如何使用 Javascript 鼠标事件和 CSS 重新创建“突出显示”选择?

如何在Android中的ListView中突出显示行?

如何使用 PDFKit 突出显示 pdf 中的选定文本?

如何基于公式突出显示excel中的行

如何选择/突出显示列表视图中的项目而不触摸它?