通过将你所展示的视图控制器的顶部视图背景设置为透明,可以实现隐藏呈现者正在圆角化的视图的效果。然后只需将下一个顶部视图的角度圆角化到所需数量即可。
我知道,对于您来说可能已经太晚了,但也许对其他人有用。我使用了带有掩码的层(梯度),但我认为,您可以根据自己的需求进行修改。
self.view.backgroundColor = .clear
let mask = CAShapeLayer()
mask.path = UIBezierPath(roundedRect: tableView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize.init(width: 25, height: 25)).cgPath
// You can use with layer of viewConroller's view
self.view.layer.backgroundColor = UIColor.green.cgColor
self.view.layer.mask = mask
// And gradient background for VC
let gradient = CAGradientLayer()
gradient.colors = [UIColor.green.cgColor, UIColor.blue.cgColor]
gradient.frame = view.bounds
gradient.mask = mask
self.view.layer.insertSublayer(gradient, at: 0)
preferredCornerRadius
的变量。if let sheet = nav.sheetPresentationController {
sheet.detents = [.large(), .medium()]
sheet.preferredCornerRadius = 20
}