我可以在 SwiftUI 中反转 clipShape 以从另一个形状中剪出形状吗?

Posted

技术标签:

【中文标题】我可以在 SwiftUI 中反转 clipShape 以从另一个形状中剪出形状吗?【英文标题】:Can I invert clipShape to cut out shape from another shape in SwiftUI? 【发布时间】:2021-05-19 15:10:12 【问题描述】:

我有一个蓝色矩形覆盖 ZStack 内的相机预览层。

我想要做的是从蓝色矩形中剪下一个 RoundedRectangle“框架”,这样相机预览层就有一个带圆角的蓝色框架。

如何从蓝色矩形中剪下一个圆角矩形以显示下面的预览层?有没有办法反转剪辑形状??

下面是我目前拥有的图片,黑色代表当前被蓝色矩形隐藏的相机预览层。

struct CameraView: View 

   var body: some View 
       ZStack   // can I invert this clipshape to reveal camera view??
          Rectangle().ignoresSafeArea(.all).foregroundColor(.blue).clipShape(
               RoundedRectangle(cornerRadius: 20.00)
             )
          CameraPreviewLayer() // represented by BLACK color
          ShutterButton()
       
   




【问题讨论】:

这能回答你的问题吗? SwiftUI add inverted mask 【参考方案1】:

你不能在 ztack 或 cameraPreviewLayer 上使用.cornerRadius() 属性吗?

【讨论】:

以上是关于我可以在 SwiftUI 中反转 clipShape 以从另一个形状中剪出形状吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中屏蔽/剪辑图像的底部?

如何在 SwiftUI 中用另一个形状剪辑一个形状?

SwiftUI-自定义修饰符

如何在最新的 iOS 14 中仅在 swiftui 中舍入滚动视图的顶角

SwiftUI Image scaledToFill 布局行为

延迟 SwiftUI 中的重复动画,在完整的自动反转重复周期之间