📖코드로 View를 만들어보자
1. view 인스턴스 생성
closure의 실행문 형태로 구현하면 view 속성 설정하는 코드를 closure 안에 쓸 수 있어서 코드가 깔끔✨
private let mainLabel: UILabel = {
let label = UILabel()
// 여기에다가 속성들 설정
return label
}()
private lazy var mainButton: UIButton = {
let button = UIButton(type: .custom)
// 여기에다가 속성들 설정
return button
}()
private lazy var stackView: UIStackView = {
let stview = UIStackView(arrangedSubviews: [mainLabel, mainButton])
// 여기에다가 속성들 설정
return stview
}()addTarget
속성 뿐만 아니라 addTarget을 통한 동작 설정도 클로져의 실행문 안에 작성
2. view 메모리에 올리기(표시)
⭐️ 어쨌든 핵심은 addSubview()
private func configure() {
[stackView, passwordResetButton].forEach { view.addSubview($0) }
}forEach를 통해서라면 stackView와 같이 묶여있는 View들을 올려주기 편하다addSubview를 한 순서대로 view가 올라감(가장 마지막에 올린 게 가장 위로 올라감)
addSubview를 하지 않는다면?
autoLayout은 설정했는데 그 View는 없어 머야 이게!!!
3. Autolayout 설정
정말 하나하나 잡아줘야 함(겁나 헷갈려 ;-;) 어디를 기준으로 맞출건지에 대한 기준 필수 storyboard에서는 기본적으로
Safe Area를 기준으로 잡음
private func makeAutoLayout() {
NSLayoutConstraint.activate([
notAutoView.topAnchor.constraint(equalTo: view.topAnchor, constant: 200),
notAutoView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 8),
notAutoView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: 8),
notAutoView.heightAnchor.constraint(equalToConstant: viewsHeight)
])
}equalToConstant: 직접적인 숫자로 제약을 설정 → 변수로 숫자를 설정한다면 변수값만 변경해도 손쉽게 싹 다 변경 가능

