el-checkbox选中时把值转为0和1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了el-checkbox选中时把值转为0和1相关的知识,希望对你有一定的参考价值。

参考技术A 最近做项目遇到el-checkbox选中只能为true和false,而后端需要传1和0,返回时也是一样

选中时更改 UICollectionView 单元格的背景和标签颜色

【中文标题】选中时更改 UICollectionView 单元格的背景和标签颜色【英文标题】:Change background and label colour of UICollectionView cell when it is selected 【发布时间】:2021-03-31 09:14:10 【问题描述】:

在选择自定义 UICollectionView 单元格时,我一直在尝试更改其背景颜色和标签颜色,但似乎无法真正弄清楚这一点。当前的问题是,当单元格被选中时,它会更改背景颜色,但标签会完全消失(它会创建具有所选背景颜色的新单元格并将其放在旧单元格上)。我有一个自定义 UICollectionViewCell 类,我在其中设置初始背景颜色和标签:

class UnitCollectionViewCell: UICollectionViewCell 
    
    let cornerRadius: CGFloat = 27
    var bigLabel =  UILabel()
    
    override init(frame: CGRect) 
        super.init(frame: frame)
        setupView()
        
        
    
    
    required init?(coder: NSCoder) 
        fatalError("init(coder:) has not been implemented")
    
    
    override var isSelected: Bool 
        didSet 
            self.contentView.layer.cornerRadius = cornerRadius
            self.contentView.backgroundColor = isSelected ? UIColor(named: "warmRed") : .none
            
        
    
    
    func setupView() 
        backgroundColor = UIColor(named: "warmRed")?.withAlphaComponent(0.4)
        layer.cornerRadius = cornerRadius
        
        configureUnitViewLabels()
    
    
    func configureUnitViewLabels() 
        bigLabel.font = .boldSystemFont(ofSize: 30)
        bigLabel.textColor = UIColor(named: "darkWhite")
        bigLabel.textAlignment = .left
        bigLabel.translatesAutoresizingMaskIntoConstraints = false
        addSubview(bigLabel)

        setBigLabelConstraints()
    

    func setBigLabelConstraints() 
        bigLabel.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 10).isActive = true
        bigLabel.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 15).isActive = true
        bigLabel.rightAnchor.constraint(equalTo: contentView.safeAreaLayoutGuide.rightAnchor, constant: 5).isActive = true
        bigLabel.heightAnchor.constraint(equalToConstant: 30).isActive = true
    
    
    

在我的 ViewController 类中,我目前在 cellForItemAt 方法中声明自定义单元格:

let unitCell = collectionView.dequeueReusableCell(withReuseIdentifier: "unitCell", for: indexPath) as! UnitCollectionViewCell

目前的结果:

期望的结果:

到目前为止我尝试了什么:

    我曾尝试在我的自定义单元格类中使用isSelected 方法(请参阅上面我的自定义单元格类中的代码),但如前所述,它会创建新单元格并将其置于旧单元格之上。

    我已经尝试将 didSelectItemAtdidDeselectItemAt 方法与 dequeueReusableCell(withReuseIdentifier:,for: IndexPath) 和 cellForItem(at: IndexPath) 一起使用,但它们的工作原理与前面提到的 isSelected 方法基本相同。

    我也尝试在 isSelected 方法中创建新的 UILabel,但是标签没有设置为应该在 cellForItemAt 方法中设置的文本。

如果需要任何其他代码,请告诉我。谢谢!

【问题讨论】:

看这里***.com/questions/27674317/… 【参考方案1】:

只需在您的单元格中进行更改

override var isSelected: Bool
    willSet
        super.isSelected = newValue
        self.layer.borderColor = newValue ?  UIColor.black.cgColor : #colorLiteral(red: 0.6862131953, green: 0.686313808, blue: 0.6861912012, alpha: 1)
        self.lblSubItem.textColor = newValue ? UIColor.black : #colorLiteral(red: 0.6862131953, green: 0.686313808, blue: 0.6861912012, alpha: 1)
    

【讨论】:

完美!像魔术一样工作。非常感谢!

以上是关于el-checkbox选中时把值转为0和1的主要内容,如果未能解决你的问题,请参考以下文章

elemetUi 组件--el-checkbox

使用el-checkbox实现全选,点击失效没有反应

elementUI多选框的其他样式

CSS:去除input和button边框以及选中时边框默认样式

选中复选框时如何将AJAX值发送为1,未选中时如何发送0?

Axure8.0 按钮选中时改变颜色和文字