@@ -166,7 +166,7 @@ class SheetPresentationController: UIPresentationController, UIGestureRecognizer
166
166
if hasParentSheet {
167
167
back. cornerRadius = transition. cornerRadius
168
168
} else {
169
- back. cornerRadius = UIScreen . main . displayCornerRadius
169
+ back. cornerRadius = transition . displayCornerRadius
170
170
}
171
171
#endif
172
172
overlayView. alpha = 0
@@ -190,7 +190,7 @@ class SheetPresentationController: UIPresentationController, UIGestureRecognizer
190
190
overlayView. frameWithoutTransform = presentingViewController. view. bounds
191
191
192
192
presentedViewController. view. frameWithoutTransform = presentedViewController. sheetFrame ( transition: transition, container: container)
193
- presentedViewController. view. cornerRadius = container. isCompactVertical ? UIScreen . main . displayCornerRadius : transition. cornerRadius
193
+ presentedViewController. view. cornerRadius = container. isCompactVertical ? transition . displayCornerRadius : transition. cornerRadius
194
194
presentedViewController. view. layer. maskedCorners =
195
195
container. isIpadLayout ? [ . layerMinXMinYCorner, . layerMaxXMinYCorner, . layerMinXMaxYCorner, . layerMaxXMaxYCorner] : [ . layerMinXMinYCorner, . layerMaxXMinYCorner]
196
196
presentedViewController. view. clipsToBounds = true
@@ -332,3 +332,22 @@ private extension UIViewController {
332
332
}
333
333
}
334
334
}
335
+
336
+ extension Transition {
337
+ private static let cornerRadiusKey : String = {
338
+ let components = [ " Radius " , " Corner " , " display " , " _ " ]
339
+ return components. reversed ( ) . joined ( )
340
+ } ( )
341
+
342
+ public var displayCornerRadius : CGFloat {
343
+ #if os(iOS)
344
+ guard let cornerRadius = UIScreen . main. value ( forKey: Self . cornerRadiusKey) as? CGFloat else {
345
+ return 0
346
+ }
347
+
348
+ return cornerRadius
349
+ #else
350
+ return 0
351
+ #endif
352
+ }
353
+ }
0 commit comments