2016-06-02 3 views
2

У меня есть вид в контроллере панели, где я бы хотел показать кнопку. Я создаю эту кнопку программно на основе состояния, поэтому я использую следующий код, но ничего не появляется:Swift UIButton не отображается на экране

override func viewDidLoad() { 
    super.viewDidLoad() 
    if !Settings.getIsConnected() { 
     notConnected() 
    } 
} 

func notConnected() { 
    let connectBtn = UIButton(frame: CGRect(x: self.view.center.x, y: self.view.center.y, width: 200, height: 45)) 
    connectBtn.setTitle("Connect", forState: .Normal) 
    connectBtn.addTarget(self, action:#selector(self.pressedConnect(_:)), forControlEvents: .TouchUpInside) 
    self.view.addSubview(connectBtn) 

    print("Button created") 
} 

func pressedConnect(sender: UIButton!) { 

} 

Я невежественный на то, что я делаю неправильно. Кто-нибудь получил предложения? Потому что он распечатывает «Созданная кнопка», поэтому он определенно запускает код внутри метода noConnected().

+2

Попробуйте добавить цвет фона в свой UIButton, а цвет оттенка к его названию – AnthonyR

+0

Спасибо, что была проблема! Как-то название и кнопка все белые – Reshad

+1

Недавно я видел подобную проблему, я думаю, что это цвет по умолчанию, когда мы создаем программно UIButton – AnthonyR

ответ

3

Добавить цвет фона в ваш UIButton и добавить цвет оттенка в название. Это решит проблему.

3

Попробуйте перевести код на viewDidAppear и проверьте, отображается ли кнопка.

Кадр неправильно установлен в viewDidLoad. Используйте метод viewDidLayoutSubviews как можно скорее, когда кадр правильно настроен для ViewController.

С помощью этого изменения кода вам понадобится дополнительная логика, когда ваша кнопка должна быть добавлена ​​как подзаголовок.