我正在使用以下代码在扩展中创建一个uibutton:
extension UIButton {
func customButton(_ title: String, selector: Selector) -> UIButton{
let button = UIButton()
button.layer.borderWidth = 1
button.layer.borderColor = UIColor.black.cgColor
button.titleLabel!.font = UIFont.systemFont(ofSize: 16)
button.setTitle(title, for: UIControlState())
button.setTitleColor(UIColor.black, for: UIControlState())
button.setTitleColor(UIColor(r: 220, g: 220, b:220), for: .highlighted)
button.titleEdgeInsets = UIEdgeInsetsMake(8, 8, 8, 8)
button.layer.cornerRadius = 5
button.sizeToFit()
button.addTarget(self, action: selector, for: .touchUpInside)
button.frame = CGRect(x: 0, y: 0, width: 80, height: 30)
button.alpha = 0.4
return button
}
}
问题是我在UIBarButtonItem中使用此按钮作为自定义视图:
UIBarButtonItem(customView: self.customButton!)
该按钮将alpha设置为0.4,但该按钮仍显示完整的alpha!
我甚至尝试在调用customButton方法后在类中切换它,它根本不起作用。
我试图让按钮在首次打开时显示为禁用状态,并且无法使该alpha工作。
答案 0 :(得分:0)
不确定为什么会这样,但我添加了这个,我们现在很好。
override func viewWillAppear(_ animated: Bool) {
button?.alpha = 0.4
}
出于某种原因,将它放在viewWillAppear中会使得加载时alpha为0.4。