🩵 오늘 한 일
✔️ 시뮬레이터 버전을 변경하다
https://yy-dev.tistory.com/132
https://yy-dev.tistory.com/133
왜 변경했냐면....
개발 버전은 15인데 시뮬레이터는 17로 돌리는 게 말이 안되잖아요?
15버전이 잘 작동되는지도 확인이 조~금 어렵구요
그래서 변경을 해보았습니다ㅎㅎ
✔️ 메인화면 Layout 구현 + Snapkit
이번에는 처음으로 snapkit을 사용하여 작업을 하고 있어요
Auto Layout은 사용자 인터페이스의 구성 요소를 상대적 위치 및 크기로 정의하는데 사용되어요.
다양한 디바이스 크기과 방향에 대해 유연하게 대응하는 레이아웃을 구성할 수 있습니다!
snapkit은 Auto Layout 라이브러리로써
코드로 Auto Layout을 작성할 때 발생할 수 있는 복잡성을 (획기적으로) 줄여주고 쉽게 작성할 수 있게 도와줍니다
아주아주 직관적이고 간결해요!
예를 들어, 화면에 뷰를 꽉 채우는 오토레이아웃을 작성해볼게요
기본 Auto Layout
view.addSubview(subview)
subview.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
subview.topAnchor.constraint(equalTo: view.topAnchor),
subview.leadingAnchor.constraint(equalTo: view.leadingAnchor),
subview.trailingAnchor.constraint(equalTo: view.trailingAnchor),
subview.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
Snapkit을 사용한 Auto Layout
view.addSubview(subview)
subview.snp.makeConstraints { make in
make.edges.equalToSuperview()
}
╭ ◜◝ ͡ ◜◝ ͡ ◜◝ ╮
오호라
이녀석...?
╰ ◟◞ ͜ ◟ ͜ ◟◞ ╯
O
.°
솔직히 저건 좀 많이 획기적이지 않나요?
귀찮게 translatesAutoresizingMaskIntoConstraints 도 일일히 작성해주지 않아도 됩니다!
snapkit에서 다 처리해주니까요
아래는 실제 제 코드 예시입니다
기본 Auto Layout
NSLayoutConstraint.activate([
navigationLeftLocationInfoStackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
navigationLeftLocationInfoStackView.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
NSLayoutConstraint.activate([
navigationRightButtonsStackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -12),
navigationRightButtonsStackView.topAnchor.constraint(equalTo: view.topAnchor, constant: 10)
])
Snapkit을 사용한 Auto Layout
navigationLeftLocationInfoStackView.snp.makeConstraints { make in
make.leading.equalToSuperview().offset(16)
make.centerY.equalToSuperview()
}
navigationRightButtonsStackView.snp.makeConstraints { make in
make.trailing.equalToSuperview().offset(-12)
make.top.equalTo(10)
}
왜 진작 안썼나 싶네요
그래도 기본 Auto Layout을 다룰 줄 아는 것도 정말!! 중요하다고 생각하므로
서드파티 라이브러리 없이 Auto Layout 구성을 할 수 있게 연습한 다음 사용해보시는 걸 추천합니다 ^___^
https://github.com/SnapKit/SnapKit
https://snapkit.github.io/SnapKit/docs/
'TIL' 카테고리의 다른 글
[TIL] 24.02.19 (0) | 2024.02.19 |
---|---|
[TIL] 24.02.13 (0) | 2024.02.13 |
[TIL] 24.02.06 (1) | 2024.02.06 |
[TIL] 24.02.05 (1) | 2024.02.05 |
[TIL] 24.02.02 (1) | 2024.02.02 |