gpt4 book ai didi

ios - 如何使用 ZStack 和 SwiftUI 剪辑 subview ?

转载 作者:行者123 更新时间:2023-12-01 16:05:11 27 4
gpt4 key购买 nike

我需要通过使用其矩形来裁剪文本后面的 View 。当我在这个 1 像素高的矩形上添加一个文本时,我需要它“剪辑”下面的 subview ,这样文本就可以阅读了。

gradient background

当然,如果我使用纯色背景,这很容易做到,因为我只需设置它,它就会裁剪 subview 。

enter image description here

这是一个 POC 来测试它:

struct test: View {
let gradient = Gradient(colors: [Color.blue, Color.purple])

var body: some View {
ZStack {
Rectangle()
.fill(LinearGradient(gradient: gradient, startPoint: .leading, endPoint: .trailing))
.frame(width: 200, height: 200)

ZStack {
Rectangle()
.fill(Color.white)
.frame(width: 100, height: 1, alignment: .center)
Text("XXXX")
.background(Color.green)
}
}
}
}

有什么想法吗?我不认为我可以使用面具来处理它。

最佳答案

有时,解决方案可能是不做而不是要做

这是解决您的问题的上述原则的可能实现。

demo

var body: some View {
ZStack {
Rectangle()
.fill(LinearGradient(gradient: gradient, startPoint: .leading, endPoint: .trailing))
.frame(width: 200, height: 200)

HStack(spacing: 0) {
Rectangle()
.fill(Color.white)
.frame(width: 30, height: 1, alignment: .center)
Text("XXXX")
Rectangle()
.fill(Color.white)
.frame(width: 30, height: 1, alignment: .center)
}
}

关于ios - 如何使用 ZStack 和 SwiftUI 剪辑 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63455811/

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