gpt4 book ai didi

swiftui - 如何在 SwiftUI 中创建透明矩形

转载 作者:行者123 更新时间:2023-12-04 12:19:36 50 4
gpt4 key购买 nike

我想通过一个小矩形使图像 100% 透明,并使所有其他图像 50% 透明。好像打了一个小孔来透视这个小矩形。这是我的代码...

struct ImageScope: View {

var body: some View {
ZStack {
Image("test_pic")

Rectangle()
.foregroundColor(Color.black.opacity(0.5))

Rectangle()
.frame(width: 200, height: 150)
.foregroundColor(Color.orange.opacity(0.0))
.overlay(RoundedRectangle(cornerRadius: 3).stroke(Color.white, lineWidth: 3))
}
}
}

为了更容易理解...

enter image description here

最佳答案

这是工作方法。它使用自定义形状和奇偶填充样式。

使用 Xcode 11.4/iOS 13.4 测试

下面的演示具有更高的透明度对比度以获得更好的可见性。

demo

struct Window: Shape {
let size: CGSize
func path(in rect: CGRect) -> Path {
var path = Rectangle().path(in: rect)

let origin = CGPoint(x: rect.midX - size.width / 2, y: rect.midY - size.height / 2)
path.addRect(CGRect(origin: origin, size: size))
return path
}
}

struct ImageScope: View {

var body: some View {
ZStack {
Image("test_pic")

Rectangle()
.foregroundColor(Color.black.opacity(0.5))
.mask(Window(size: CGSize(width: 200, height: 150)).fill(style: FillStyle(eoFill: true)))

RoundedRectangle(cornerRadius: 3).stroke(Color.white, lineWidth: 3)
.frame(width: 200, height: 150)
}
}
}

关于swiftui - 如何在 SwiftUI 中创建透明矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61344676/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com