SwiftUI ERR:“参数'title'必须在参数'style'之前

问题描述

我正在研究一个package,它具有许多具有认值的自定义参数。鉴于潜在的初始化程序太多,当您更改许多参数时,对正确地排序所有命令很快就会变得困惑。

我有一个两部分的问题:

  1. 是否可以从初始化中删除订购要求?
  2. 如果不是,是否有更好的方法来构造此程序包的自定义参数其他开发人员有何建议?

我考虑过使用视图修饰符,但不确定在这种包装结构下该效果如何。

结构初始化和使用如下。

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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...