Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩
SwiftUI/SwiftUI(Basic)

15. [SwiftUI] .ignoresSafeArea() & .edgesIgnoringSafeArea()

by Toughie 2023. 4. 20.

https://developer.apple.com/design/human-interface-guidelines/foundations/layout/

 

Layout - Foundations - Human Interface Guidelines - Design - Apple Developer

Layout Using a consistent layout that adapts to various contexts makes your experience more approachable and helps people enjoy their favorite apps and games on all their devices. Guides and safe areas A layout guide defines a rectangular region that helps

developer.apple.com

이제는 .edgesIgnoringSafeArea() 대신에 .ignoresSafeArea()를 사용하는 것이 맞다.

(edgesIgnoringSafeArea()가 deprecated됨)

 

대략 알고 있던 내용이라 무리가 없었는데..

이상한 현상을 발견했다.

분명 코드대로면 ScrollView는 safeArea 내부에만 위치하고, safeArea 영역만 gray색이어야 하는데

ignoreSafeArea 코드를 따로 적용하지 않았음에도 safeArea 외부 영역까지 gray색이 채워져있다.

원래대로라면 safeArea는 gray, 그 밖은 red 컬러인 것이 정상이다.

 

프레임에서 .infinity 관련 같은데, 다른 사람 컴퓨터에서도 해봐도 똑같고 시뮬레이터의 오류도 아닌 것 같다.

stackOverflow에서 찾아봐도 관련된 내용이 안보이고.. 대체 무엇이 바뀌었는지 모르겠다.

 

.frame(maxWidth: .infinity, maxHeight: .infinity)

이것의 디폴트 자체가 'safeArea 내부에서'로 알고 있는데 대체 왜 이런 것일까..?

그러면 이제 safeArea 내부영역의 색깔만 바꾸려면 어떻게 해야하지..?

 

멘토나 다른 사람들에게 더 물어봐야겠다.. 

이유를 아시는 분....

 

이 현상 이해를 돕기 위한 예시를 추가해 둔다.

코드만 보면 파란색 영역(safeArea)만 노란색이고, 그 밖은 흰색이어야 하는데
이상하게 전부 다 노란색으로 채워지는 것을 볼 수 있다. 대체 왜???