J'ai essayé de donner une couleur différente à chaque ligne, mais chaque fois que je déplace les curseurs responsables de la couleur, chaque ligne change de couleur. J'ai essayé de placer les valeurs que je reçois des curseurs dans la boucle for, mais pour une raison quelconque, cela ne donne pas une couleur différente à chaque ligne. Les variables de stockage sont les variables que j'utilise pour stocker les valeurs des curseurs définis dans ma classe de contrôleurs de vue.Comment définir différentes lignes avec des couleurs différentes?
Pour clarifier ce que j'essaie de faire, voici un exemple: La ligne 1 pourrait être rouge et la ligne 2 pourrait être violette.
Voilà ma tentative actuelle à changer la couleur des lignes:
import UIKit
import CoreData
class DrawClass: UIView {
var lines:[Line] = []
var lastPoint: CGPoint!
required init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder)
self.backgroundColor = UIColor.whiteColor()
self.layer.zPosition = 1
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent){
if let touch = touches.first as? UITouch {
lastPoint = touch.locationInView(self)
}
}
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent){
if let touch = touches.first as? UITouch {
var newPoint = touch.locationInView(self)
lines.append(Line(start: lastPoint, end: newPoint))
lastPoint = newPoint
}
self.setNeedsDisplay()
}
override func drawRect(rect: CGRect) {
var context = UIGraphicsGetCurrentContext()
var storage: Float = ViewController.simple.storage1
var storage2: Float = ViewController.simple.storage2
var storage3: Float = ViewController.simple.storage3
for line in lines
{
CGContextBeginPath(context)
CGContextMoveToPoint(context, line.start.x, line.start.y)
CGContextAddLineToPoint(context, line.end.x, line.end.y)
CGContextSetRGBStrokeColor(context, CGFloat(storage), CGFloat(storage2), CGFloat(storage3), 1)
CGContextSetLineWidth(context, 5)
CGContextStrokePath(context)
}
}
}
-t-il quelque chose à voir avec cette ligne de code:
lines.append(Line(start: lastPoint, end: newPoint))
Merci! Cela fonctionne comme prévu maintenant! Cependant, j'ai dû convertir les valeurs de couleur de ligne en CGFloat et supprimer les variables de point de départ et de point final puisque je n'utilisais pas ces paramètres. – user3479469