2017-09-10 12 views
1

私はストーリーボードなしで簡単なアプリケーションを作成したいと思います。私は画面上のタイトルを表すviewDidLoadメソッドの外側にクロージャを作成しました。私の問題は、コードに重複した行が含まれていることです。view.addSubview(label)ラベルを間違った場所に配置します。viewDidLoad外のクローズ

この問題を解決してもらえますか?

class HomeVC: UIViewController { 
    let titleLabel: UILabel = { 
     let view = UIView() 
     let label = UILabel() 
     label.translatesAutoresizingMaskIntoConstraints = false 
     view.addSubview(label) 
     label.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 
     label.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true 
     label.text = "Hello" 
     return label 
    }() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     view.addSubview(titleLabel) 
    } 
} 

答えて

2

私は、あなたがHomeVCの視野の中心にラベルを設定したい場合は、上記のコードでは、問題は、新しいビューを作成すると、ビュー内のラベルを配置していることであり、あなたが望むものではないthatsのだと思いますビューのサブビューとして、このラベルを追加viewDidLoadで、その後

let titleLabel: UILabel = { 

      let label = UILabel() 
      label.translatesAutoresizingMaskIntoConstraints = false 

      label.text = "Hello" 
      return label 
     }() 

とを制約

を適用しますので、

あなたは、このように最初のラベルを作ります

+0

ありがとうございました。それは、私はちょうどviewDidLoadで最小限のコードを追加したいと思う。 –