问题描述
我正在研究一个package,它具有许多具有默认值的自定义参数。鉴于潜在的初始化程序太多,当您更改许多参数时,对正确地排序所有命令很快就会变得困惑。
我考虑过使用视图修饰符,但不确定在这种包装结构下该效果如何。
结构初始化和使用如下。
public struct LineChart: View {
public var data: [Double]
public var title: String?
public var subtitle: String?
public var floatingPointNumberFormat: String
public var cursorColor: Color
public var curvedLines: Bool
public var displayChartStats: Bool
public var minWidth: CGFloat
public var minHeight: CGFloat
public var maxWidth: CGFloat
public var maxHeight: CGFloat
public var titleFont: Font
public var subtitleFont: Font
public var priceFont: Font
public var fullScreen: Bool
private var chartStyle: ChartStyle = Styles.lineChartStyleOne
public init (data: [Double],title: String? = nil,subtitle: String? = nil,style: LineChartStyle? = .primary,curvedLines: Bool = true,cursorColor: Color = Colors.IndicatorKnob,displayChartStats: Bool = false,minWidth: CGFloat = 0,minHeight: CGFloat = 0,maxWidth: CGFloat = .infinity,maxHeight: CGFloat = .infinity,titleFont: Font = .system(size: 30,weight: .regular,design: .rounded),subtitleFont: Font = .system(size: 14,weight: .light,dataFont: Font = .system(size: 16,weight: .bold,design: .monospaced),floatingPointNumberFormat: String = "%.1f",fullScreen: Bool = false) {
// Assign data
self.data = data
self.title = title
self.subtitle = subtitle
self.floatingPointNumberFormat = floatingPointNumberFormat
self.cursorColor = cursorColor
self.curvedLines = curvedLines
self.displayChartStats = displayChartStats
self.minHeight = minHeight
self.minWidth = minWidth
self.maxHeight = maxHeight
self.maxWidth = maxWidth
self.subtitleFont = subtitleFont
self.titleFont = titleFont
self.priceFont = dataFont
self.fullScreen = fullScreen
switch style {
case .custom(let customStyle): self.chartStyle = customStyle
case .primary: self.chartStyle = Styles.lineChartStyleTwo
case .secondary: self.chartStyle = Styles.lineChartStyleThree
case .tertiary: self.chartStyle = Styles.lineChartStyleFour
default: self.chartStyle = Styles.lineChartStyleOne
}
}
public var body: some View {
LineChartView(data: self.data,title: self.title,legend: self.subtitle,style: self.chartStyle,valueSpecifier: self.floatingPointNumberFormat,cursorColor: self.cursorColor,curvedLines: self.curvedLines,displayChartStats: self.displayChartStats,minWidth: self.minWidth,minHeight: self.minHeight,maxWidth: self.maxWidth,maxHeight: maxHeight,titleFont: self.titleFont,subtitleFont: self.subtitleFont,priceFont: self.priceFont)
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)