들어가기 앞서 StoryBoard VS CODE
SwiftUI - StoryBoard - SnapKit 순으로 iOS를 개발하고 공부하면서 각각의 장단점이 있는데 결국은 CODE로 개발을 할 수 밖에 없는 것 같다.
장점
- 커스텀을 할 수 있다.
- 협업을 할 때 충돌을 피할 수 있다.
- 다양한 함수를 사용할 수 있다.
단점
- 실행을 시키지 않으면 레이아웃을 볼 수 없다.
- Constraints를 안줬다고 오류가 뜨지 않는다.(StoryBoard에서는 오류가 뜸)
- StoryBoard대비 기능을 사용하기 어렵다.(StoryBoard에서는 inspector를 사용하여 쉽게 설정 할 수 있음)
- 코드가 길어진다.
코드로 Auto Layout을 하면 코드가 길어지고 보기 어렵기 때문에 SnapKit을 이용해 편하게 사용가능하게 한다.
설치방법
CocoPod 이나 SPM으로 설치 스냅킷
사용방법
이전에서는 translatesAutoresizingMaskIntoConstraints = false를 해줘야 하지만 snapkit에 view.translatesAutoresizingMaskIntoConstraints = false가 되어 있어서 편하다.
import SnapKit
locationView.snp.makeConstraints {
$0.size.equalTo(100)
$0.centerX.centerY.equalToSuperview()
주의
Constraints를 지정할 때 위치를 한곳이라도 지정하지 않으면 화면에 나타나지 않는다.
많이 사용하는 것들
equalToSuperview() : 그리는 뷰의 부모뷰
equalTo() : ()안에 값이나 선언되어있는 뷰의 크기를 넣을 수 있다.
inset() : 위치 조정(양수)
offset() : 위치 조정(bottom과 trailing은 음수)
$0.height.equalTo(): height값 지정
$0.width.equalTo(): width값 지정
$0.size.equalTo(): height + width
view.snp.makeConstraints: 처음에 위치를 정할 때 사용
view.snp.updateConstraints: 위치의 상수값을 변경할 때 사용
view.snp.remakeConstraints: UI의 조건을 바꿀 때 사용
'iOS' 카테고리의 다른 글
CocoaPods 설치, 오류 해결 법 (0) | 2022.11.11 |
---|---|
CocoaPods vs SPM vs Carthage (0) | 2022.11.11 |