TIL

[TIL] 24.02.07

YEN_ 2024. 2. 7. 23:52

🩵 오늘 한 일

 

✔️ 시뮬레이터 버전을 변경하다 

https://yy-dev.tistory.com/132

 

[Xcode] iOS 시뮬레이터 버전 변경/추가

개발을 하다보면 os 버전을 낮춰서 하게 될 때가 많죠 이럴 때 시뮬레이터에서 제대로 확인해보려면 해당 버전의 시뮬레이터로 돌려야 합니다 시뮬레이터의 os 버전 변경/추가하는 방법 알아볼

yy-dev.tistory.com

https://yy-dev.tistory.com/133

 

[Xcode] Unable to boot the Simulator 에러 해결

이전 게시글에서 iOS 시뮬레이터 버전을 변경하고 빌드하는 과정 중, Unable to boot the Simulator 에러가 발생했어요 더보기 ~ 이전글 발췌~ Unable to boot the Simulator xcode 녀석이 우리가 추가해준 시뮬레이

yy-dev.tistory.com

 

 

왜 변경했냐면....

개발 버전은 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

 

GitHub - SnapKit/SnapKit: A Swift Autolayout DSL for iOS & OS X

A Swift Autolayout DSL for iOS & OS X. Contribute to SnapKit/SnapKit development by creating an account on GitHub.

github.com

https://snapkit.github.io/SnapKit/docs/

 

Requirements

Requirements iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+ Xcode 9.0+ Swift 4.0+ Communication If you need help, use Stack Overflow. (Tag ‘snapkit’) If you’d like to ask a general question, use Stack Overflow. If you found a bug, open an issue. If you have

snapkit.github.io