<aside> 💡 SwiftUI 에서도 UISheetPresentationController 의 기능을 잘 활용하기 위한 코드를 소개한다.

</aside>

TL;DR

구현체는 GitHub 에서 확인할 수 있다.

Conclusion;

전환 애니메이션이나 커스텀 디밍 처리가 필요하다면 UISheetPresentationController 쓰지 말고 직접 구현하자

이유

iOS 16 부터 SwiftUI 에서 sheet 를 제대로 보여주기 위한 [presentationDetents](<https://developer.apple.com/documentation/swiftui/view/presentationdetents(_:selection:)>), [presentationDragIndicator](<https://developer.apple.com/documentation/swiftui/view/presentationdragindicator(_:)>) 등이 사용가능하게 되었지만 여전히 UISheetPresentationController 에 비하면 제한적인 구성이었다.

디자인 가이드에 따라 largestUndimmedDetentIdentifier, cornerRadius 등의 기능을 활용해야했기 때문에 SwiftUI 에서 제공하는 메소드만으로는 요구사항을 만족시키기 어려웠다.

UIKit 의 UISheetPresentationController 또한 iOS 15.0 부터 지원 가능한 클래스이지만, 개발 중인 타겟버전이 더 높았고, 기본 기능을 벗어나는 요구사항도 없었기 때문에 서드파티는 고려하지 않았다.

Hint

과정

구현

Issues