当前位置: 首页 > 面试题库 >

如何设置状态的UIButton背景颜色:UIControlState.Swift中突出显示

慕凌龙
2023-03-14
问题内容

我可以为按钮设置背景颜色,但无法确定如何为设置背景颜色 UIControlState.Highlighted。可能吗
还是我需要走这setBackgroundImage条路?


问题答案:

如果有人停下来,如果您需要多次的话,另一种可能走的更容易的方法……我为UIButton写了一个简短的扩展,它工作得很好:

对于Swift 3

extension UIButton {
    func setBackgroundColor(color: UIColor, forState: UIControlState) {
        UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
        CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(), color.CGColor)
        CGContextFillRect(UIGraphicsGetCurrentContext(), CGRect(x: 0, y: 0, width: 1, height: 1))
        let colorImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        self.setBackgroundImage(colorImage, forState: forState)
    }
}

对于Swift 4

extension UIButton {
    func setBackgroundColor(color: UIColor, forState: UIControl.State) {
        self.clipsToBounds = true  // add this to maintain corner radius
        UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
        if let context = UIGraphicsGetCurrentContext() {
            context.setFillColor(color.cgColor)
            context.fill(CGRect(x: 0, y: 0, width: 1, height: 1))
            let colorImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            self.setBackgroundImage(colorImage, for: forState)
        }
    }
}

您可以像使用它一样setBackgroundImage

yourButton.setBackgroundColor(color: UIColor.white, forState: UIControl.State.highlighted)


 类似资料:
  • 我有一个按钮,它包含一个抽屉和文本。我希望按钮的背景不同于正常提供的(最好是一个普通的颜色)。这工作得很好,我只需在XML文件中使用属性并相应地分配颜色。然而,我希望背景改变为不同的颜色时,选择或聚焦(状态选择器)。 我尝试用定义的颜色在一个可绘制的文件夹中创建一个选择器(当处理按钮的文本时很好地工作),如下所示: 并将此xml设置为属性,如下所示: 但这会引起一个力闭合,说明: 但资源就在那里。

  • 通过RGB值设置背景的颜色。 默认的颜色是 0x000000: // 颜色的参数可以是字符串 "#530000" 或者是十六进制数值 0x530000 controller.setBackgroundColor("#530000); //controller.setBackgroundColor(0x530000);

  • 只是想知道是否有人知道如何在MPAndroidChart中为条形图设置高亮颜色?目前它就像一个深黑色(有点透明)的覆盖层。我想让它成为一个白色(有点透明)的覆盖层,甚至可能是一个渐变。有点像这样:

  • 本文向大家介绍如何在HTML中设置背景颜色?,包括了如何在HTML中设置背景颜色?的使用技巧和注意事项,需要的朋友参考一下 要在HTML中设置背景颜色,请使用style属性。style属性指定元素的内联样式。该属性与HTML <body>标记以及CSS属性background-color一起使用。HTML5不支持<body>标记的bgcolor属性,因此CSS样式用于添加背景色。HTML5中不推荐

  • 问题内容: 当我尝试使用以下命令在Vim 中或直接在Vim中更改背景色时: …完全不影响我的背景。该选项也没有。但是,当我运行gvim时看起来还可以。 有没有一种方法可以在Vim中更改背景而不更改我的Konsole设置? 编辑 好的,guifg / guibg和ctermfg / ctermbg之间是有区别的。虽然GUI接受许多不同的颜色组合,但是cterm仅允许很少的标准颜色组合。 问题答案:

  • 因此,我尝试使用getContentPane().setBackground(color.white)并尝试将table和scrollpane设置为白色。 这是唯一一个我不能改变颜色的框架,它是在另一个类中创建的- 通过这样做,我得到了另一个面板来成功地改变颜色