Swift ZStack以圆形矩形作为条形图。如何正确填充?
我想在ZStack(用于演示的滑块)中使用两个圆角矩形创建垂直条形图: 这适用于~30以上的所有值。由于角半径的原因,下面的值将绿色矩形渲染为小矩形,以将其显示在第一个矩形的正上方: 我如何防止这种情况发生,或者我如何以其他方式创建这个简单的条形图Swift ZStack以圆形矩形作为条形图。如何正确填充?,swift,charts,swiftui,Swift,Charts,Swiftui,我想在ZStack(用于演示的滑块)中使用两个圆角矩形创建垂直条形图: 这适用于~30以上的所有值。由于角半径的原因,下面的值将绿色矩形渲染为小矩形,以将其显示在第一个矩形的正上方: 我如何防止这种情况发生,或者我如何以其他方式创建这个简单的条形图 提前谢谢。您需要裁剪的形状如下 ZStack(对齐:。前导){ 圆角反射角(圆角半径:20)。前底色(颜色。灰色)。边框(宽度:300,高度:30) RoundedRectangle(圆角半径:20)。foregroundColor(颜色。绿色)
提前谢谢。您需要裁剪的形状如下
ZStack(对齐:。前导){
圆角反射角(圆角半径:20)。前底色(颜色。灰色)。边框(宽度:300,高度:30)
RoundedRectangle(圆角半径:20)。foregroundColor(颜色。绿色)。边框(宽度:值,高度:30)
}
.clipShape(圆角矩形(拐角半径:20))/您需要剪裁的形状,如下所示
ZStack(对齐:。前导){
圆角反射角(圆角半径:20)。前底色(颜色。灰色)。边框(宽度:300,高度:30)
RoundedRectangle(圆角半径:20)。foregroundColor(颜色。绿色)。边框(宽度:值,高度:30)
}
.clipShape(圆角矩形(拐角半径:20))/这里是使用遮罩和覆盖的替代解决方案:
struct Chart: View {
@Binding var value: CGFloat
var body: some View {
let rectangle = RoundedRectangle(cornerRadius: 20)
return rectangle.overlay(
GeometryReader { _ in
ZStack(alignment: .leading) {
Rectangle()
.frame(width: value)
.foregroundColor(.green)
}
}
.mask(rectangle)
)
.foregroundColor(.gray)
}
}
下面是使用掩码
和覆盖
的替代解决方案:
struct Chart: View {
@Binding var value: CGFloat
var body: some View {
let rectangle = RoundedRectangle(cornerRadius: 20)
return rectangle.overlay(
GeometryReader { _ in
ZStack(alignment: .leading) {
Rectangle()
.frame(width: value)
.foregroundColor(.green)
}
}
.mask(rectangle)
)
.foregroundColor(.gray)
}
}
嗯,那很容易。非常感谢你!嗯,那很容易。非常感谢你!
struct Chart: View {
@Binding var value: CGFloat
var body: some View {
let rectangle = RoundedRectangle(cornerRadius: 20)
return rectangle.overlay(
GeometryReader { _ in
ZStack(alignment: .leading) {
Rectangle()
.frame(width: value)
.foregroundColor(.green)
}
}
.mask(rectangle)
)
.foregroundColor(.gray)
}
}
Chart(value: $value)
.frame(width: 300, height: 30)