2017-09-10 1 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의 뷰의 중심에 레이블을 설정하려는 생각, 위의 코드에서 문제가 새 뷰를 만들고 뷰 내부의 라벨을 배치하는 것입니다 그리고 당신이 원하는 것을하지 이잖아, 보기의 하위 뷰으로이 레이블을 추가 viewDidLoad에 다음

let titleLabel: UILabel = { 

      let label = UILabel() 
      label.translatesAutoresizingMaskIntoConstraints = false 

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

및 및 제약

을 적용 그래서

당신은 다음과 같이 첫 번째 레이블을

+0

답변 해 주셔서 감사합니다. 그것은 작동, 난 그냥 viewDidLoad에 최소한의 코드를 추가 싶었어요. –