Ich möchte die backgroundColor
Eigenschaft meiner UIView
rot oder gelb sein. Die Ansicht zeigt jedoch eine schwarze Farbe an.Warum ist die Hintergrundfarbe meiner Zeichenansicht schwarz?
class RenderView:UIView {
var pointsToDraw:[Int] = [] {
didSet {
self.setNeedsDisplay()
}
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.backgroundColor = UIColor.whiteColor()
}
override func drawRect(rect: CGRect) {
let context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, self.bounds);
CGContextSetLineWidth(context, 3);
UIColor.yellowColor().set()
if pointsToDraw.count > 4 {
CGContextMoveToPoint(context, CGFloat(pointsToDraw[0]), CGFloat(pointsToDraw[1]))
for i in 2..<pointsToDraw.count {
if i % 2 == 0 {
CGContextAddLineToPoint(context, CGFloat(pointsToDraw[i]), CGFloat(pointsToDraw[i + 1]))
}
}
}
// Draw
CGContextStrokePath(context);
}
}
Die Linie, die ich auf die Ansicht zeichnen kann, ist gelb, aber die Ansicht ist immer noch schwarz. Here's a sample project. Warum denkst du, dass das passiert?
Gibt es einen Grund, dass Sie 'CGContextClearRect' aufrufen müssen? Es löscht die Hintergrundfarbe - und du zeichnest nie wieder deinen eigenen Hintergrund. Daher wird das Ergebnis schwarz sein. – Hamish