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

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

【问题讨论】:

    标签: ios objective-c uicollectionviewcell highlight


    【解决方案1】:

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

    import UIKit
    
    class CustomCell: UICollectionViewCell {
    
        override func awakeFromNib() {
            super.awakeFromNib()
    
            let backgroundView = UIView(frame: CGRectZero)
    
            backgroundView.backgroundColor = UIColor.blueColor()
    
            self.selectedBackgroundView = backgroundView
        }
    }
    

    来自the docsUICollectionViewCell

    您可以使用此视图为单元格提供自定义外观 选择。当单元格被选中时,这个视图在 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? 快乐编码.. :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多