【问题标题】:UIAppearance of UILabel whithin UICollectionViewCell - selected/unselectedUICollectionViewCell 中的 UILabel 的 UIAppearance - 已选择/未选择
【发布时间】:2019-10-26 10:48:21
【问题描述】:

我目前正在与UIAppearance 合作,为我的项目中所有网点的颜色工作,这使我能够在我的 iOS 应用程序上创建自己的“DIY”版本的夜间模式。

样本:

UILabel.appearance().textColor = colorScheme.primaryColor 
UILabel.appearance(whenContainedInInstancesOf: [MyController.self]).textColor = colorScheme.secondaryColor 
... 

注意:Colorscheme 只是一个包含我所有颜色的结构,根据状态 .lightMode / .darkMode 进行切换

我最近构建了一个UICollectionViewCell 的子类,其中包含UILabel,我想使用相同的方法来定义其中的颜色。但是我很难弄清楚如何根据单元格的选定状态为嵌套的 UILabel 设置不同的颜色

例如:

// create a default UIView with specific backgroundColor 
let selectedBackgroundView = UIView()
selectedBackgroundView.backgroundColor = colorScheme.selectedBackgroundColor

MyCollectionViewCell.appearance().backgroundColor = colorScheme.backgroundColor // default 
MyCollectionViewCell.appearance().selectedBackgroundView = selectedBackgroundView // set specific view used when cell is selected

当我想在选择MyCollectionViewCell 时设置不同的背景颜色时,上面的代码可以正常工作,但是我希望嵌套的UILabel 也可以更改其fontColor,具体取决于是否选择了单元格. UIAppearance 有没有合适的方法来实现这一点?

【问题讨论】:

    标签: swift uiappearance


    【解决方案1】:

    终于找到了解决这个问题的办法。我发布了我的解决方案,它可能对某人有所帮助。

    首先我为textColorhighlightedTextColor 定义颜色

    UILabel.appearance(whenContainedInInstancesOf: [MyCollectionViewCell.self]).textColor = colorScheme.color1
    UILabel.appearance(whenContainedInInstancesOf: [MyCollectionViewCell.self]).highlightedTextColor = colorScheme.color2
    

    然后在MyCollectionViewCell我将isSelected“绑定”到UILabel isHighlighted

    class MyCollectionViewCell: UICollectionViewCell {
    
        @IBOutlet weak var myLabel: UILabel!
    
        override var isSelected: Bool {
            didSet {
                self.myLabel.isHighlighted = isSelected
            }
        }
    }
    

    完美运行。

    希望这可以帮助某人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 2013-11-25
      • 2012-10-15
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多