【发布时间】:2021-12-30 06:57:08
【问题描述】:
我想创建一个可以接受线性或角度渐变作为属性的视图。虽然两种渐变都符合 ShapeStyle,但我无法用它定义属性类型。
如果视图只接受一个 LinearGradient,则如下所示:
struct NewView: View {
var fill: LinearGradient
init(fill: LinearGradient = LinearGradient(gradient: Gradient(colors: [Color.green, Color.blue]), startPoint: .top, endPoint: .bottom) {
self.fill = fill
}
var body: some View {
Circle()
.stroke(fill, style: StrokeStyle(lineWidth: 25))
}
}
理想情况下,它会接受填充属性中的任何一个渐变,而不需要任何其他属性。
【问题讨论】: