SnapKit을 사용해 AutoLayout을 설정할 때 주의해야 할 점이 있다.

노치의 유무에 따라 SafeArea가 존재하는데

 

childView.snp.makeConstraints {
	$0.left.bottom.right.equalToSuperView()
	$0.height.equalTo(300)
}

 

위와 같이 레이아웃을 설정했다면

 

view에 Contraint 을 설정한 경우

 

전체 뷰를 기준으로 레이아웃이 잡히게 된다. 어떤 기준으로 개발하느냐의 차이겠지만 만약 SafeArea를 기준으로 레이아웃을 잡고 싶다면 Swift에서 제공하는 safeAreaLayoutGuide를 기준으로 오토레이아웃을 잡아주면 된다.

 

childView.snp.makeConstraints {
	$0.left.bottom.right.equalTo(view.safeAreaLayoutGuide)
	$0.height.equalTo(300)
}

 

view.safeAreaLayoutGuide 에 Constraint를 설정한 경우

 

복사했습니다!