首页 > 解决方案 > 如何动态更改自定义 UIButton 的图像

问题描述

我创建了一个自定义 UIButton 类,使其看起来像下拉选择。我在按钮右侧有一个小的向下箭头图像。我想根据各种条件将按钮的图像更改为不同的图像,例如灰色、白色或红色。怎么做?以下是我的代码:

class DropDownButton: UIButton {

   let dropDownImageGrey = UIImage(named: "Icons/DropDown/Grey")
   let dropDownImageWhite = UIImage(named: "Icons/DropDown/White")
   let dropDownImageRed = UIImage(named: "Icons/DropDown/Red")

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override func awakeFromNib() {
        super.awakeFromNib()

        self.imageEdgeInsets = UIEdgeInsets(top: 0, left: self.frame.width - 108, bottom: 0, right:0)
        self.setImage(dropDownImageGrey, for: [])
        self.titleEdgeInsets = UIEdgeInsets(top: 0, left: -13, bottom: 0, right:0)
    }
}

override func viewDidLoad() {
    // Change image to red one
    dropDownButton.??? // How to change?
}

标签: iosswiftuibutton

解决方案


您可能想使用 setImage,UIButton

override func viewDidLoad() {
    // Change image to red one
    let dropDownButton = DropDownButton()
    dropDownButton.setImage(dropDownButton.dropDownImageRed, for: .normal)
}

如果添加了图像,Assets.xcassets那么您可以使用image literals或直接使用名称,例如,

let dropDownImageGrey = UIImage(named: "Grey")
let dropDownImageWhite = UIImage(named: "White")
let dropDownImageRed = UIImage(named: "Red")

推荐阅读