'UIButton tint under UIAlertController

I'm trying to show a UIAlertController over a UIButton. The button is of type custom, and I have set the tint color to UIColor.clear, because I don't want any tint color. I've read that setting your UIButton to custom turns off the tint color, but that doesn't work for me. This method works out ok, until I show an alert controller on top.

This is before adding the alert:

enter image description here

This is what it looks like when I show the alert:

enter image description here

There's a clear grey tint color around the UIButton. It does this with any .selected UIButtons. How do I get rid of this tint? I really don't want to make my own button class just to get rid of this.

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var starBtn: UIButton!
    var selected: Bool = false

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        starBtn.isSelected = selected
        starBtn.setImage(UIImage(named: "StarButtonSelected"), for: .selected)
        starBtn.setImage(UIImage(named: "StarButtonDeselected"), for: .normal)
        starBtn.isHighlighted = false
        starBtn.tintColor = UIColor.clear
        starBtn.backgroundColor = UIColor.clear
    }

    @IBAction func starBtnUp(_ sender: Any) {
        selected = !selected
        starBtn.isSelected = selected
    }

    @IBAction func showAlertBtnUp(_ sender: Any) {
        let shareFileAction = UIAlertAction(title: "Share File", style: .default) { action in
        
        }
        let shareWebLink = UIAlertAction(title: "Share Link", style: .default) { action in
        
        }
        let alert = UIAlertController(title: "Share", message: "What do you want to share?", preferredStyle: .alert)
        alert.addAction(shareFileAction)
        alert.addAction(shareWebLink)
    
        self.present(alert, animated: true) {
        
        }
    }
}

Edit: Okay, so if I create the button programmatically only, without using IB, it doesn't do the grey tint thing. I really don't want to have to not use IB though. Here's the re-written code that works how I want it to.

class ViewController: UIViewController {
var starBtn: UIButton!
var selected: Bool = true

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        starBtn = UIButton(type: .custom)
        self.view.addSubview(starBtn)
        starBtn.translatesAutoresizingMaskIntoConstraints = false
        starBtn.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true
        starBtn.centerYAnchor.constraint(equalTo: self.view.centerYAnchor).isActive = true
        starBtn.heightAnchor.constraint(equalToConstant: 60).isActive = true
        starBtn.widthAnchor.constraint(equalToConstant: 60).isActive = true
    
        starBtn.isSelected = selected
        starBtn.tintColor = UIColor.clear
        starBtn.setImage(UIImage(named: "StarButtonSelected"), for: .selected)
        starBtn.setImage(UIImage(named: "StarButtonDeselected"), for: .normal)
        starBtn.isHighlighted = false
        starBtn.backgroundColor = UIColor.clear
    
        starBtn.addTarget(self, action: #selector(starBtnUp(_:)), for: .touchUpInside)
    }

    @IBAction func starBtnUp(_ sender: Any) {
        selected = !selected
        starBtn.isSelected = selected
    }

    @IBAction func showAlertBtnUp(_ sender: Any) {
        let shareFileAction = UIAlertAction(title: "Share File", style: .default) { action in
        
    }
        let shareWebLink = UIAlertAction(title: "Share Link", style: .default) { action in
        
        }
        let alert = UIAlertController(title: "Share", message: "What do you want to share?", preferredStyle: .actionSheet)
        alert.addAction(shareFileAction)
        alert.addAction(shareWebLink)
    
        self.present(alert, animated: true) {
        
        }
    }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source