generated from taek0622/iOS-Repository-Template
-
Notifications
You must be signed in to change notification settings - Fork 0
ViewController Convention
Mintaek Kim (Meenu) edited this page Oct 24, 2022
·
2 revisions
-
ViewController
안의 요소들은Property
,View
,Life Cycle
,Method
순으로 작성한다. -
ViewController
의View
는 아래와 같은 형식으로 작성한다.
let view: UIView = {
$0.translatesAutoresizingMaskIntoConstraints = false
return $0
}(UIView())
-
Life Cycle
내부에는 최소한의 코드만 작성한다. -
ViewController
안에 뷰를 배치하는 것은attribute
, 뷰들을 꾸미는 것은layout
이라는Method
안에 작성한다. - text를 사용할 수 있는 뷰들은 선언시 반드시 .text 요소를 초기화시킨다.
private lazy var label: UILabelView = {
$0.text = "기본 내용" // text의 내용이 바뀔 수 있다하더라도 반드시 초기화 (""와 같은 빈 텍스트로라도 반드시 초기화해야 함)
$0.translatesAutoresizingMaskIntoConstraints = false
return $0
}(UILabelView())
import UIKit
final class ViewController: UIViewController {
// MARK: - Property
private let text: String = ""
private let isShowing: Bool = true
// MARK: - View
private lazy var button: UIButton = {
$0.translatesAutoresizingMaskIntoConstraints = false
return $0
}(UIButton())
// MARK: - Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
attribute()
layout()
}
// MARK: - Method
private func attribute() {
// 배경위에 올리는 요소들 (배경색, 버튼 등)
view.background = .white
view.addSubView(button)
}
private func layout() {
button.topAnchor.constraint(view.topAnchor, constraint: 30).isActive = true
}
...
}
// MARK: - UICollectionViewDelegate
extension ViewController {
}
copyrightⓒ 2022 All rights reserved by 삼삼하다