<aside> 💡 SwiftUI 에서도 UISheetPresentationController 의 기능을 잘 활용하기 위한 코드를 소개한다.
</aside>
구현체는 GitHub 에서 확인할 수 있다.
전환 애니메이션이나 커스텀 디밍 처리가 필요하다면 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 부터 지원 가능한 클래스이지만, 개발 중인 타겟버전이 더 높았고, 기본 기능을 벗어나는 요구사항도 없었기 때문에 서드파티는 고려하지 않았다.
overrideUserInterfaceStyle
로 설정