2016-10-02 2 views
0

Я создаю UIButton в расширении со следующим кодом:быстры - UIBarButtonItem 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!) 

Эта кнопка устанавливает альфа-значение 0,4, но кнопка все еще отображается с полной альфа-программой!

Я даже попытался переключить его в классе после вызова метода customButton, и он просто не работает.

Я пытаюсь сделать кнопку отключенной при первом открытии, и это невозможно, чтобы эта альфа работала.

ответ

0

Не знаете, почему это происходит, но я добавил это, и мы хорошо сейчас.

override func viewWillAppear(_ animated: Bool) { 

     button?.alpha = 0.4 
    } 

По какой-то причине, поставив его в viewWillAppear делает это так, что альфа 0,4 от нагрузки.