调用数组中的下一个元素

时间:2016-03-14 00:38:48

标签: ios arrays swift

我正在尝试更新xColor中的值,因此它可以从colorPalette中获取不同的颜色。如您所见,colorPalette [xColor] .CGColor正在做的工作是检查要使用的颜色。我在尝试使用滑动手势更新xColor时遇到了麻烦,因此它可以抓取阵列中的其他元素。任何建议都会有所帮助!

Canvas.swift:

    var xColor = 0
    var colorPalette = [UIColor.blueColor(), UIColor.yellowColor(), UIColor.redColor(), UIColor.redColor()]

    override func drawRect(rect: CGRect) {
        let context = UIGraphicsGetCurrentContext()
        let color = colorPalette[xColor].CGColor
        CGContextSetFillColorWithColor(context, color)
        let rect = CGRect(x: x - r, y: y - r, width: 2 * r, height: 2 * r)
        CGContextFillEllipseInRect(context, rect)
}

ViewController.swift:

func handleSwipes(sender:UISwipeGestureRecognizer) {

    let cv = CanvasView()

    if (sender.direction == .Left) {
        cv.xColor--
        print("Swipe left!")
    }

    if (sender.direction == .Right) {
        cv.xColor++
        print("Swipe right!")
    }
    print(cv.xColor)
}

1 个答案:

答案 0 :(得分:0)

您的代码存在两个问题。第一个是这一行:

let cv = CanvasView()

这会创建一个 new CanvasView,但是新的CanvasView与已经在界面中显示的 CanvasView不同。不幸的是,那个旧的CanvasView是你需要交谈的那个!

第二个问题,一旦你与旧的CanvasView交谈,就是你没有告诉它需要重绘。您需要发送setNeedsDisplay消息。