Ios 基于变量的调用方法(SWIFT)

Ios 基于变量的调用方法(SWIFT),ios,swift,methods,Ios,Swift,Methods,我有许多不同的Coregraphics函数来绘制钟面的不同元素。我希望将逻辑放在一起,根据从当前小时提取的变量确定钟面显示的方面。所有绘图方法都列在单独的swift类/文件中。我如何简化这个过程,将变量注入到调用的方法中,而不是创建这个if语句塔?在这里,您可以看到drawCanvas04()与下午4:00(或16小时)相关联 } 下面是调用stylekit draw方法的示例: public class func drawCanvas07() { //// Color Declarat

我有许多不同的Coregraphics函数来绘制钟面的不同元素。我希望将逻辑放在一起,根据从当前小时提取的变量确定钟面显示的方面。所有绘图方法都列在单独的swift类/文件中。我如何简化这个过程,将变量注入到调用的方法中,而不是创建这个if语句塔?在这里,您可以看到drawCanvas04()与下午4:00(或16小时)相关联

}

下面是调用stylekit draw方法的示例:

public class func drawCanvas07() {
    //// Color Declarations
    let color0 = UIColor(red: 0.894, green: 0.000, blue: 0.476, alpha: 1.000)

    //// HOUR7 Drawing
    var hOUR7Path = UIBezierPath(ovalInRect: CGRectMake(65.5, 155.99, 24, 24))
    color0.setFill()
    hOUR7Path.fill()

}

使用参数。同时减少类方法,使用实例方法,如
self.drawCanvas()

像这样:

func drawCanvas(canvas:Int) {
    switch canvas {
        case 0:
        // do something here for 0 o clock
        case 1:
        // 1 o clock
        // etc,
        default:
        // in case somehow you run out of bounds
    }
}

并使用
drawCanvas(10)

调用它,drawrect方法应该位于不同的类中,还是需要与时间计算方法嵌套?我很难在不触发“无法使用类型为“(Int)”的参数列表调用'drawCanvas'错误的情况下构造代码来传递hour变量。此外,似乎我使用实例方法self.drawCanvas的唯一方法是从StyleKit文件调用它,否则它会请求我使用ClockStyleKit.drawCanvas()。再次强调,不要使用类方法。您使用的是类方法,这就是为什么您必须执行
ClockStyleKit.drawCanvas()
@softdownfeathers如果您可以将其标记为正确,以便其他人可以将其作为解决方案来参考,那将是非常棒的:-)
func drawCanvas(canvas:Int) {
    switch canvas {
        case 0:
        // do something here for 0 o clock
        case 1:
        // 1 o clock
        // etc,
        default:
        // in case somehow you run out of bounds
    }
}