Ich habe versucht, jeder Zeile eine andere Farbe zu geben, aber jedes Mal, wenn ich die Schieberegler verschiebe, die dafür zuständig sind, die Zeilen mit Farbe zu versehen, ändert jede einzelne Zeile ihre Farbe. Ich habe versucht, die Werte, die ich von den Slidern bekomme, in die for-Schleife zu legen, aber aus irgendeinem Grund gibt es nicht jede Zeile eine andere Farbe. Die Speichervariablen sind die Variablen, die ich verwende, um die Werte aus den Schiebereglern zu speichern, die in meiner View-Controller-Klasse definiert sind.Wie stellst du verschiedene Linien mit verschiedenen Farben ein?
Um zu verdeutlichen, was ich versuche, hier ein Beispiel: Zeile 1 könnte rot sein und Zeile 2 könnte lila sein.
Hier ist mein aktueller Versuch, die Farbe der Linien zu ändern:
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)
}
}
}
Hat es etwas mit dieser Codezeile zu tun hat:
lines.append(Line(start: lastPoint, end: newPoint))
Thank you! Es funktioniert jetzt wie beabsichtigt! Allerdings musste ich die Linienfarbenwerte in CGFloat konvertieren und die Startpunkt- und Endpunktvariablen entfernen, da ich diese Parameter nicht verwendete. – user3479469