How to change button image in swift?

后端 未结 8 847
陌清茗
陌清茗 2021-02-10 04:09

I am working on an app which has a button. The button has no text, image or background.

So what I want to do is to give it an image in the viewDidLoad function.

相关标签:
8条回答
  • 2021-02-10 04:20

    There's one simple solution:

    @IBOutlet var tapButton: UIButton!{
    didSet{
    let image = UIImage(named: imageColor[randNum])
    tapButton.setImage(image, forState: UIControlState.Normal)
    }
    

    Besides that, in the Attribute Inspector, Set Button type to 'Custom'

    0 讨论(0)
  • 2021-02-10 04:21

    First set your button type as Custom in interface builder and set the image for normal state for your button.

    Connect IBOutlet for button in class file as

    @IBOutlet weak var btnCheckbox: UIButton!
    

    in your class file in viewDidLoad set image for selected state as

    btnCheckbox.setImage(UIImage.init(named: "name_of_image"), for: .selected)
    

    Create @IBAction for in class file as

    @IBAction func onTapCheckBox(_ sender: UIButton) {
        sender.isSelected = !sender.isSelected
    }
    

    Then connect @IBAction to your button's Touch up Inside event from interface builder

    0 讨论(0)
  • 2021-02-10 04:22

    First I would put the image you wanted inside the Assets.xcassets folder. Just drag it in. Then you can call it whatever you want by double-clicking on it. Lets say that it is called "redTap".

    For code you would put:

    @IBOutlet var tapButton: UIButton!
    
    override func viewDidLoad() {
    
        super.viewDidLoad()
    
        let redTapImage = UIImage(named: "redTap")
        tapButton.setImage(redTapImage, forState: UIControlState.Normal)
    }
    
    0 讨论(0)
  • 2021-02-10 04:25

    You don't need ".png".

    If ".imageWithRenderingMode(.AlwaysOriginal)" is working for you: To keep the same image in different states, you have to set the same image/properties for the different states.

    @IBOutlet var tapButton: UIButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    
        tapButton.setImage(UIImage(named: "redTap")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Normal)
        tapButton.setImage(UIImage(named: "redTap")?.imageWithRenderingMode(.AlwaysOriginal), forState: .Highlighted)
    }
    
    0 讨论(0)
  • 2021-02-10 04:27
    let button = UIButton(type: .Custom)
    let image = UIImage(named:"redTap")?.imageWithRenderingMode(.AlwaysTemplate)
    button.setImage(image, forState: .Normal)
    button.tintColor = UIColor.redColor()
    
    0 讨论(0)
  • 2021-02-10 04:33

    Let image = UIImage(named : "redTap.png") tapButton.setImage(image, .Normal)

    0 讨论(0)
提交回复
热议问题