iOS) SnapKit 활용(Y축 중심을 기준 / 너비 대비 높이)

less than 1 minute read

아래의 뷰를 만들기 위한 과정 중에서 알게된 SnapKit 사용법을 적어보자.

  • 화면의 y축 중심으로부터 constraint 를 잡고싶다.
  • 너비 대비 높이를 비율로 잡고싶다.

우선 아래와 같은 레이아웃을 잡고싶었다.

그래서 다음과 같이 코드를 작성하였다.

// "기본" 이라고 적힌 UIView.
basicBackgroundView.snp.makeConstraints { make in
    // 🚨 inset 이 적용되지 않아서 y축 중심에 위치.
    make.bottom.equalTo(view.snp.centerY).inset(-63)
    make.leading.trailing.equalToSuperview().inset(24)
    // 🚨 multipliedBy 가 적용되지 않아서 뷰에서 보이지 않음.
    make.height.equalTo(basicBackgroundView.snp.width).multipliedBy(117 / 327)
}

// 나머지 "직장", "덕질" 이라고 적힌 UIView 는 높이를 정적이게 설정.

결과는 아래와 같았다.

이런 경우에 다음과 같이 코드를 작성하면 된다.

basicBackgroundView.snp.makeConstraints { make in
    // ✅ inset 이 아닌 offset 으로 다룸.
    make.bottom.equalTo(view.snp.centerY).offset(-63)
    make.leading.trailing.equalToSuperview().inset(24)
    // ✅ 소수점을 표시해줌.
    make.height.equalTo(basicBackgroundView.snp.width).multipliedBy(117.0 / 327.0)
}

Categories:

Updated: